SPSS File Name: HATCH Syntax for Prenatal Q’s 4.17.21.sps
library(tidyverse) # for data cleaning
library(here) # to quickly find data files
library(haven) # to manipulate SPSS files and add SPSS-style labels
library(chron) # to manipulate time and date variables
library(sjmisc) # for rowwise functions (row_count function)
library(data.table) # for renaming variables (setnames function)
library(kableExtra) # to print tables more neatly (kbl wrapping function)
df.pn <- read.csv(here("data/qualtrics/Intermediate", "0_pn.democlean.csv"))
AAS columns# Get Column Numbers
cols <- which(colnames(df.pn)=="AAS_1.pn"):which(colnames(df.pn)=="AAS_18.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = gsub(pattern = "_", replacement = "", x = colnames(df.pn[,cols])))
# Reverse Code Key
reverse_key <- setNames(c(1:5), 5:1)
# Reverse code questions 2,7,8,13,16,17,18
df.pn <- df.pn %>%
mutate_at(vars(c(AAS2.pn, AAS7.pn, AAS8.pn,
AAS13.pn, AAS16.pn:AAS18.pn)),
~ recode(., !!!reverse_key))
# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("AAS2.pn", "AAS7.pn", "AAS8.pn",
"AAS13.pn","AAS16.pn", "AAS17.pn", "AAS18.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("AAS2.pn", "AAS7.pn", "AAS8.pn",
"AAS13.pn","AAS16.pn", "AAS17.pn", "AAS18.pn")))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that scores are numeric
mutate_at(vars(c(AAS1.pn:AAS18_r.pn)), as.numeric) %>%
# Calculate subscales
mutate(AAS_close.pn = round(mean(c(AAS1.pn, AAS6.pn, AAS8_r.pn,
AAS12.pn, AAS13_r.pn, AAS17_r.pn),
na.rm = F), 3),
AAS_dep.pn = round(mean(c(AAS2_r.pn, AAS5.pn, AAS7_r.pn,
AAS14.pn, AAS16_r.pn, AAS18_r.pn),
na.rm = F), 3),
AAS_anx.pn = round(mean(c(AAS3.pn, AAS4.pn, AAS9.pn,
AAS10.pn, AAS11.pn, AAS15.pn),
na.rm = F),3)) %>%
# Move the subscales so they come immediately after the measures
relocate(c(AAS_close.pn:AAS_anx.pn), .after = AAS18_r.pn)
| CoupleID | AAS1.pn | AAS2_r.pn | AAS3.pn | AAS4.pn | AAS5.pn | AAS6.pn | AAS7_r.pn | AAS8_r.pn | AAS9.pn | AAS10.pn | AAS11.pn | AAS12.pn | AAS13_r.pn | AAS14.pn | AAS15.pn | AAS16_r.pn | AAS17_r.pn | AAS18_r.pn | AAS_close.pn | AAS_dep.pn | AAS_anx.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 20 | 1 | 1 | 5 | 3 | 1 | 3 | 1 | 2 | 1 | 1 | 4 | 4 | 4 | 1 | 5 | 1 | 1 | 1 | 2.500 | 1.000 | 3.167 |
| 2 | 2 | 4 | 1 | 4 | 1 | 2 | 4 | 2 | 1 | 2 | 1 | 3 | 4 | 4 | 4 | 2 | 3 | 5 | 2.667 | 3.333 | 2.167 |
| 55 | 4 | 4 | 1 | 4 | 2 | 2 | 5 | 5 | 1 | 4 | 1 | 5 | 5 | 5 | 1 | 5 | 5 | 5 | 4.333 | 4.333 | 2.000 |
| 75 | 4 | 2 | 1 | 1 | 4 | 2 | 5 | 4 | 1 | 1 | 1 | 5 | 5 | 4 | 1 | 5 | 4 | 5 | 4.000 | 4.167 | 1.000 |
| 52 | 4 | 2 | 1 | 1 | 4 | 5 | 5 | 5 | 1 | 1 | 1 | 4 | 3 | 5 | 2 | 4 | 3 | 5 | 4.000 | 4.167 | 1.167 |
| 12 | 2 | 1 | 3 | 4 | 1 | 2 | 2 | 2 | 4 | 5 | 4 | 2 | 2 | 2 | 5 | 1 | 1 | 1 | 1.833 | 1.333 | 4.167 |
| CoupleID | AAS1.pn | AAS2_r.pn | AAS3.pn | AAS4.pn | AAS5.pn | AAS6.pn | AAS7_r.pn | AAS8_r.pn | AAS9.pn | AAS10.pn | AAS11.pn | AAS12.pn | AAS13_r.pn | AAS14.pn | AAS15.pn | AAS16_r.pn | AAS17_r.pn | AAS18_r.pn | AAS_close.pn | AAS_dep.pn | AAS_anx.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 65 | 4 | 2 | 1 | 2 | 2 | 2 | 4 | 4 | 1 | 2 | 2 | 4 | 4 | 4 | 2 | 2 | 5 | 2 | 3.833 | 2.667 | 1.667 |
| 4 | 4 | 2 | 1 | 1 | 2 | 4 | 5 | 5 | 1 | 1 | 2 | 4 | 4 | 4 | 2 | 2 | 3 | 4 | 4.000 | 3.167 | 1.333 |
| 18 | 3 | 4 | 2 | 2 | 4 | 4 | 4 | 4 | 1 | 2 | 2 | 4 | 3 | 4 | 3 | 4 | 2 | 3 | 3.333 | 3.833 | 2.000 |
| 10 | 3 | 3 | 1 | 1 | 3 | 3 | 3 | 5 | 1 | 2 | 1 | 4 | 3 | 4 | 3 | 5 | 5 | 5 | 3.833 | 3.833 | 1.500 |
| 43 | 5 | 2 | 1 | 1 | 2 | 3 | 2 | 4 | 1 | 4 | 1 | 4 | 4 | 2 | 1 | 2 | 5 | 2 | 4.167 | 2.000 | 1.500 |
| 9 | 2 | 2 | 3 | 3 | 3 | 3 | 2 | 2 | 5 | 5 | 4 | 2 | 3 | 4 | 4 | 2 | 1 | 2 | 2.167 | 2.500 | 4.000 |
BDI columns# Get Column Numbers
cols <- which(colnames(df.pn)=="BDI1_Sad.pn"):which(colnames(df.pn)=="BDI21_Sex.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("BDI", c(1:8, 10:21), ".pn", sep = ""))
df.pn <- df.pn %>%
# Code Items 1-15, 17, 19-21
mutate_at(vars(c(BDI1.pn:BDI15.pn, BDI17.pn, BDI19.pn:BDI21.pn)),
~ recode(.,
'1' = '0',
'2' = '1',
'3' = '2',
'4' = '3')) %>%
# Code Items 16, 18
mutate_at(vars(c(BDI16.pn, BDI18.pn)),
~ recode(.,
'1' = '0',
'2' = '1',
'3' = '1',
'4' = '2',
'5' = '2',
'6' = '3',
'7' = '3'))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that scores are numeric
mutate_at(vars(c(BDI1.pn:BDI21.pn)), as.numeric) %>%
# Calculate total score
mutate(BDI_tot.pn = sum(c_across(BDI1.pn:BDI21.pn))) %>%
# Move the total score so they come immediately after the measures
relocate(BDI_tot.pn, .after = BDI21.pn)
| CoupleID | BDI1.pn | BDI2.pn | BDI3.pn | BDI4.pn | BDI5.pn | BDI6.pn | BDI7.pn | BDI8.pn | BDI10.pn | BDI11.pn | BDI12.pn | BDI13.pn | BDI14.pn | BDI15.pn | BDI16.pn | BDI17.pn | BDI18.pn | BDI19.pn | BDI20.pn | BDI21.pn | BDI_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 27 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 38 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 3 |
| 47 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 3 |
| 26 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 8 |
| 88 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 7 |
| 75 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 6 |
| CoupleID | BDI1.pn | BDI2.pn | BDI3.pn | BDI4.pn | BDI5.pn | BDI6.pn | BDI7.pn | BDI8.pn | BDI10.pn | BDI11.pn | BDI12.pn | BDI13.pn | BDI14.pn | BDI15.pn | BDI16.pn | BDI17.pn | BDI18.pn | BDI19.pn | BDI20.pn | BDI21.pn | BDI_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 75 | 1 | 0 | 1 | 1 | 1 | 0 | 2 | 2 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 14 |
| 22 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 9 |
| 7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 2 |
| 94 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 2 | 0 | 2 | 1 | 0 | 15 |
| 45 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 2 | 1 | 1 | 10 |
| 15 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 1 | 0 | 1 | 2 | 0 | 1 | 0 | 1 | 1 | 12 |
BFI columns# Get Column Numbers
cols <- which(colnames(df.pn)=="BFI_2_1.pn"):which(colnames(df.pn)=="BFI_2_44.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = gsub(pattern = "_2_", replacement = "", x = colnames(df.pn[,cols])))
# Reverse Code Key
reverse_key <- setNames(c(1:5), 5:1)
# Reverse Score Q's 1, 3, 6
df.pn <- df.pn %>%
mutate_at(vars(c(BFI6.pn, BFI21.pn, BFI31.pn,
BFI2.pn, BFI12.pn, BFI27.pn, BFI37.pn,
BFI8.pn, BFI18.pn, BFI23.pn, BFI43.pn,
BFI9.pn, BFI24.pn, BFI34.pn,
BFI35.pn, BFI41.pn)),
~ recode(., !!!reverse_key))
# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("BFI6.pn", "BFI21.pn", "BFI31.pn",
"BFI2.pn", "BFI12.pn", "BFI27.pn", "BFI37.pn",
"BFI8.pn", "BFI18.pn", "BFI23.pn", "BFI43.pn",
"BFI9.pn", "BFI24.pn", "BFI34.pn",
"BFI35.pn", "BFI41.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("BFI6.pn", "BFI21.pn", "BFI31.pn",
"BFI2.pn", "BFI12.pn", "BFI27.pn", "BFI37.pn",
"BFI8.pn", "BFI18.pn", "BFI23.pn", "BFI43.pn",
"BFI9.pn", "BFI24.pn", "BFI34.pn",
"BFI35.pn", "BFI41.pn")))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that scores are numeric
mutate_at(vars(c(BFI1.pn:BFI44.pn)), as.numeric) %>%
# Calculate total scores
mutate(BFI_ext.pn = round(mean(c(BFI1.pn, BFI6_r.pn, BFI11.pn, BFI16.pn,
BFI21_r.pn, BFI26.pn, BFI31_r.pn, BFI36.pn),
na.rm = T), 3),
BFI_agr.pn = round(mean(c(BFI2_r.pn, BFI7.pn, BFI12_r.pn, BFI17.pn,
BFI22.pn, BFI27_r.pn, BFI32.pn, BFI37_r.pn, BFI42.pn),
na.rm = T), 3),
BFI_con.pn = round(mean(c(BFI3.pn, BFI8_r.pn, BFI13.pn, BFI18_r.pn,
BFI23_r.pn, BFI28.pn, BFI33.pn, BFI38.pn, BFI43_r.pn),
na.rm = T), 3),
BFI_neur.pn = round(mean(c(BFI4.pn, BFI9_r.pn, BFI14.pn, BFI19.pn,
BFI24_r.pn, BFI29.pn, BFI34_r.pn, BFI39.pn), na.rm = T), 3),
BFI_open.pn = round(mean(c(BFI5.pn, BFI10.pn, BFI15.pn, BFI20.pn, BFI25.pn,
BFI30.pn, BFI35_r.pn, BFI40.pn, BFI41_r.pn, BFI44.pn),
na.rm = T), 3)
) %>%
# Move the summmary scores so they come immediately after the measures
relocate(c(BFI_ext.pn, BFI_agr.pn, BFI_con.pn, BFI_neur.pn, BFI_open.pn),
.after = BFI44.pn)
df.pn <- df.pn %>%
mutate(across(c(BFI_ext.pn:BFI_open.pn), ~na_if(., "NaN")))
| CoupleID | BFI_ext.pn | BFI_agr.pn | BFI_con.pn | BFI_neur.pn | BFI_open.pn |
|---|---|---|---|---|---|
| 84 | 1.375 | 3.889 | 3.111 | 2.250 | 4.0 |
| 40 | 3.375 | 4.333 | 4.222 | 1.875 | 3.3 |
| 91 | 3.375 | 4.333 | 4.333 | 1.875 | 3.6 |
| 21 | 4.500 | 4.667 | 3.333 | 2.500 | 3.3 |
| 11 | 2.375 | 4.111 | 4.444 | 3.250 | 2.6 |
| 67 | 4.125 | 4.778 | 5.000 | 1.000 | 3.5 |
| CoupleID | BFI_ext.pn | BFI_agr.pn | BFI_con.pn | BFI_neur.pn | BFI_open.pn |
|---|---|---|---|---|---|
| 37 | 1.750 | 3.111 | 3.778 | 2.250 | 4.5 |
| 39 | 2.625 | 3.222 | 3.444 | 2.625 | 4.1 |
| 26 | 3.875 | 2.889 | 3.889 | 2.875 | 4.4 |
| 79 | 3.500 | 3.556 | 3.556 | 2.500 | 3.5 |
| 100 | 4.500 | 4.333 | 4.222 | 1.250 | 5.0 |
| 95 | 3.500 | 3.000 | 4.222 | 3.625 | 4.1 |
COPE columns# Get Column Numbers
cols <- which(colnames(df.pn)=="COPE_1.pn"):which(colnames(df.pn)=="COPE_28.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = gsub(pattern = "_", replacement = "", x = colnames(df.pn[,cols])))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that scores are numeric
mutate_at(vars(c(COPE1.pn:COPE28.pn)), as.numeric) %>%
# Calculate total scores/subscales
mutate(COPE_dist.pn = sum(c(COPE1.pn, COPE19.pn)),
COPE_act.pn = sum(c(COPE2.pn, COPE7.pn)),
COPE_den.pn = sum(c(COPE3.pn, COPE8.pn)),
COPE_sub.pn = sum(c(COPE4.pn, COPE11.pn)),
COPE_emo.pn = sum(c(COPE5.pn, COPE15.pn)),
COPE_inst.pn = sum(c(COPE10.pn, COPE23.pn)),
COPE_diseng.pn = sum(c(COPE6.pn, COPE16.pn)),
COPE_vent.pn = sum(c(COPE9.pn, COPE21.pn)),
COPE_reframe.pn = sum(c(COPE12.pn, COPE17.pn)),
COPE_plan.pn = sum(c(COPE14.pn, COPE25.pn)),
COPE_hum.pn = sum(c(COPE18.pn, COPE28.pn)),
COPE_acc.pn = sum(c(COPE20.pn, COPE24.pn)),
COPE_rel.pn = sum(c(COPE22.pn, COPE27.pn)),
COPE_blame.pn = sum(c(COPE13.pn, COPE26.pn))
) %>%
# Move the total score/subscales so they come immediately after the measures
relocate(c(COPE_dist.pn:COPE_blame.pn), .after = COPE28.pn)
| CoupleID | COPE_dist.pn | COPE_act.pn | COPE_den.pn | COPE_sub.pn | COPE_emo.pn | COPE_inst.pn | COPE_diseng.pn | COPE_vent.pn | COPE_reframe.pn | COPE_plan.pn | COPE_hum.pn | COPE_acc.pn | COPE_rel.pn | COPE_blame.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 78 | 5 | 7 | 3 | 2 | 6 | 6 | 2 | 5 | 6 | 6 | 6 | 6 | 7 | 4 |
| 56 | 6 | 4 | 3 | 2 | 8 | 7 | 6 | 7 | 4 | 5 | 3 | 6 | 8 | 8 |
| 36 | 6 | 6 | 3 | 2 | 8 | 8 | 2 | 7 | 7 | 8 | 6 | 8 | 5 | 2 |
| 94 | 3 | 8 | 2 | 2 | 7 | 6 | 3 | 5 | 6 | 8 | 5 | 7 | 2 | 3 |
| 84 | 5 | 6 | 2 | 2 | 6 | 6 | 3 | 3 | 4 | 7 | 5 | 8 | 2 | 2 |
| 6 | 5 | 6 | 3 | 2 | 6 | 6 | 2 | 5 | 4 | 6 | 4 | 4 | 4 | 4 |
| CoupleID | COPE_dist.pn | COPE_act.pn | COPE_den.pn | COPE_sub.pn | COPE_emo.pn | COPE_inst.pn | COPE_diseng.pn | COPE_vent.pn | COPE_reframe.pn | COPE_plan.pn | COPE_hum.pn | COPE_acc.pn | COPE_rel.pn | COPE_blame.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 56 | 3 | 8 | 2 | 2 | 6 | 6 | 2 | 5 | 5 | 5 | 7 | 7 | 8 | 3 |
| 64 | 6 | 7 | 4 | 6 | 3 | 4 | 3 | 4 | 6 | 6 | 4 | 5 | 7 | 3 |
| 43 | 2 | 7 | 2 | 2 | 6 | 7 | 2 | 3 | 7 | 7 | 8 | 8 | 2 | 5 |
| 26 | 8 | 8 | 3 | 2 | 6 | 6 | 2 | 4 | 7 | 8 | 4 | 8 | 7 | 5 |
| 14 | 6 | 7 | 2 | 2 | 5 | 3 | 2 | 6 | 5 | 8 | 8 | 8 | 3 | 8 |
| 83 | 5 | 8 | 2 | 2 | 5 | 3 | 2 | 4 | 6 | 7 | 7 | 7 | 2 | 3 |
DAS columns# Get Column Numbers
cols <- which(colnames(df.pn)=="DAS1.15_1.pn"):which(colnames(df.pn)=="DAS.32.pn")
# Set New Names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("DAS", 1:32, ".pn", sep = ""))
DAS Items 16, 17, 20, 21, 22, 29,
30# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("DAS16.pn", "DAS17.pn", "DAS20.pn", "DAS21.pn",
"DAS22.pn", "DAS29.pn", "DAS30.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("DAS16.pn", "DAS17.pn", "DAS20.pn", "DAS21.pn",
"DAS22.pn", "DAS29.pn", "DAS30.pn")))
df.pn <- df.pn %>%
# First, make sure R knows to treat DAS values as numbers
mutate_at(vars(c(DAS1.pn:DAS32.pn)), as.numeric)%>%
# Then tell R that we want to take the mean across a row
rowwise() %>%
# Calculate the summary scores
mutate(DAS_con.pn = sum(c(c_across(DAS1.pn:DAS3.pn), DAS5.pn, c_across(DAS7.pn:DAS15.pn)), na.rm = T),
DAS_sat.pn = sum(c(c_across(DAS16_r.pn:DAS23.pn), c_across(DAS31.pn:DAS32.pn)), na.rm = T),
DAS_coh.pn = sum(c_across(DAS24.pn:DAS28.pn), na.rm = T),
DAS_aff.pn = sum(c(DAS4.pn, DAS6.pn, c_across(DAS29_r.pn:DAS30_r.pn)), na.rm = T),
DAS_tot.pn = sum(c_across(DAS1.pn:DAS32.pn), na.rm = T)) %>%
# Finally, move the sum scores so that they come immediately after the measures
relocate(c(DAS_con.pn, DAS_sat.pn, DAS_coh.pn, DAS_aff.pn, DAS_tot.pn), .after = DAS32.pn)
| CoupleID | DAS1.pn | DAS2.pn | DAS3.pn | DAS4.pn | DAS5.pn | DAS6.pn | DAS7.pn | DAS8.pn | DAS9.pn | DAS10.pn | DAS11.pn | DAS12.pn | DAS13.pn | DAS14.pn | DAS15.pn | DAS16_r.pn | DAS17_r.pn | DAS18.pn | DAS19.pn | DAS20_r.pn | DAS21_r.pn | DAS22_r.pn | DAS23.pn | DAS24.pn | DAS25.pn | DAS26.pn | DAS27.pn | DAS28.pn | DAS29_r.pn | DAS30_r.pn | DAS31.pn | DAS32.pn | DAS_con.pn | DAS_sat.pn | DAS_coh.pn | DAS_aff.pn | DAS_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 100 | 4 | 4 | 4 | 4 | 4 | 1 | 4 | 3 | 3 | 4 | 4 | 4 | 4 | 4 | 4 | 5 | 4 | 4 | 5 | 5 | 3 | 3 | 3 | 3 | 4 | 5 | 5 | 4 | 0 | 0 | 5 | 4 | 50 | 41 | 21 | 5 | 117 |
| 95 | 5 | 4 | 4 | 4 | 4 | 3 | 4 | 5 | 4 | 5 | 5 | 5 | 3 | 4 | 5 | 5 | 4 | 4 | 5 | 5 | 4 | 4 | 4 | 2 | 4 | 5 | 5 | 3 | 1 | 1 | 6 | 5 | 57 | 46 | 19 | 9 | 131 |
| 54 | 5 | 5 | 5 | 5 | 5 | 3 | 4 | 5 | 3 | 3 | 5 | 5 | 4 | 4 | 5 | 5 | 5 | 4 | 5 | 5 | 3 | 3 | 4 | 4 | 5 | 5 | 5 | 2 | 0 | 1 | 4 | 4 | 58 | 42 | 21 | 9 | 130 |
| 97 | 4 | 4 | 3 | 5 | 5 | 5 | 4 | 4 | 4 | 5 | 5 | 4 | 4 | 4 | 5 | 5 | 5 | 4 | 5 | 5 | 4 | 4 | 4 | 3 | 5 | 5 | 5 | 5 | 1 | 1 | 5 | 4 | 55 | 45 | 23 | 12 | 135 |
| 34 | 3 | 4 | 4 | 4 | 4 | 3 | 3 | 3 | 3 | 4 | 2 | 3 | 3 | 4 | 3 | 4 | 5 | 5 | 4 | 5 | 3 | 3 | 4 | 1 | 3 | 4 | 2 | 0 | 0 | 0 | 4 | 4 | 43 | 41 | 10 | 7 | 101 |
| 32 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 5 | 5 | 4 | 5 | 4 | 4 | 4 | 4 | 3 | 5 | 5 | 5 | 5 | 0 | 1 | 5 | 4 | 52 | 44 | 23 | 9 | 128 |
| CoupleID | DAS1.pn | DAS2.pn | DAS3.pn | DAS4.pn | DAS5.pn | DAS6.pn | DAS7.pn | DAS8.pn | DAS9.pn | DAS10.pn | DAS11.pn | DAS12.pn | DAS13.pn | DAS14.pn | DAS15.pn | DAS16_r.pn | DAS17_r.pn | DAS18.pn | DAS19.pn | DAS20_r.pn | DAS21_r.pn | DAS22_r.pn | DAS23.pn | DAS24.pn | DAS25.pn | DAS26.pn | DAS27.pn | DAS28.pn | DAS29_r.pn | DAS30_r.pn | DAS31.pn | DAS32.pn | DAS_con.pn | DAS_sat.pn | DAS_coh.pn | DAS_aff.pn | DAS_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 92 | 4 | 4 | 5 | 5 | 5 | 4 | 3 | 4 | 5 | 5 | 5 | 5 | 4 | 4 | 4 | 5 | 5 | 4 | 4 | 5 | 4 | 4 | 4 | 3 | 3 | 4 | 4 | 3 | 0 | 1 | 5 | 4 | 57 | 44 | 17 | 10 | 128 |
| 87 | 4 | 3 | 4 | 3 | 3 | 3 | 4 | 4 | 4 | 4 | 5 | 5 | 4 | 3 | 3 | 4 | 3 | 4 | 5 | 4 | 3 | 3 | 3 | 1 | 1 | 3 | 0 | 0 | 0 | 0 | 3 | 5 | 50 | 37 | 5 | 6 | 98 |
| 69 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 4 | 4 | 4 | 4 | 5 | 5 | 5 | 5 | 1 | 1 | 6 | 5 | 65 | 48 | 24 | 12 | 149 |
| 23 | 5 | 5 | 5 | 5 | 4 | 3 | 3 | 5 | 5 | 5 | 3 | 4 | 4 | 5 | 4 | 5 | 5 | 4 | 5 | 5 | 4 | 3 | 4 | 2 | 5 | 5 | 5 | 5 | 0 | 1 | 5 | 5 | 57 | 45 | 22 | 9 | 133 |
| 99 | 3 | 5 | 5 | 4 | 4 | 5 | 4 | 4 | 4 | 5 | 4 | 5 | 4 | 4 | 4 | 5 | 4 | 5 | 5 | 5 | 4 | 4 | 4 | 3 | 3 | 5 | 5 | 3 | 1 | 1 | 0 | 4 | 55 | 40 | 19 | 11 | 125 |
| 3 | 4 | 4 | 5 | 4 | 4 | 4 | 5 | 4 | 4 | 4 | 4 | 5 | 4 | 4 | 4 | 5 | 5 | 5 | 4 | 5 | 5 | 5 | 4 | 3 | 3 | 5 | 2 | 2 | 0 | 1 | 5 | 4 | 55 | 47 | 15 | 9 | 126 |
ECR columns# Get Column Numbers
cols <- which(colnames(df.pn)=="ECR.R_1.pn"):which(colnames(df.pn)=="ECR.R_36.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = gsub(pattern = ".R_", replacement = "", x = colnames(df.pn[,cols])))
# Reverse Code Key
reverse_key <- setNames(c(1:7), 7:1)
# Reverse Score Q's 9, 11, 20, 22, 26, 27, 28, 29, 30, 31, 33, 34, 35, and 36
df.pn <- df.pn %>%
mutate(across(c(ECR9.pn, ECR11.pn, ECR20.pn, ECR22.pn,
ECR26.pn:ECR31.pn,
ECR33.pn:ECR36.pn),
~ recode(., !!!reverse_key)))
# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("ECR9.pn", "ECR11.pn", "ECR20.pn",
"ECR22.pn", "ECR26.pn", "ECR27.pn",
"ECR28.pn", "ECR29.pn", "ECR30.pn",
"ECR31.pn", "ECR33.pn", "ECR34.pn",
"ECR35.pn", "ECR36.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("ECR9.pn", "ECR11.pn", "ECR20.pn",
"ECR22.pn", "ECR26.pn", "ECR27.pn",
"ECR28.pn", "ECR29.pn", "ECR30.pn",
"ECR31.pn", "ECR33.pn", "ECR34.pn",
"ECR35.pn", "ECR36.pn")))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that scores are numeric
mutate_at(vars(c(ECR1.pn:ECR36_r.pn)), as.numeric) %>%
# Calculate total scores/subscales
mutate(ECR_anx.pn = round(mean(c_across(ECR1.pn:ECR18.pn), na.rm = T), 3),
ECR_avoid.pn = round(mean(c_across(ECR19.pn:ECR36_r.pn), na.rm = T), 3)) %>%
# Move the total score/subscales so they come immediately after the measures
relocate(c(ECR_anx.pn, ECR_avoid.pn), .after = ECR36_r.pn)
| CoupleID | ECR1.pn | ECR2.pn | ECR3.pn | ECR4.pn | ECR5.pn | ECR6.pn | ECR7.pn | ECR8.pn | ECR9_r.pn | ECR10.pn | ECR11_r.pn | ECR12.pn | ECR13.pn | ECR14.pn | ECR15.pn | ECR16.pn | ECR17.pn | ECR18.pn | ECR19.pn | ECR20_r.pn | ECR21.pn | ECR22_r.pn | ECR23.pn | ECR24.pn | ECR25.pn | ECR26_r.pn | ECR27_r.pn | ECR28_r.pn | ECR29_r.pn | ECR30_r.pn | ECR31_r.pn | ECR32.pn | ECR33_r.pn | ECR34_r.pn | ECR35_r.pn | ECR36_r.pn | ECR_anx.pn | ECR_avoid.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 50 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 7 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1.000 | 1.333 |
| 17 | 3 | 3 | 3 | 3 | 5 | 3 | 1 | 2 | 5 | 1 | 2 | 2 | 1 | 1 | 1 | 2 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 3 | 2.333 | 1.667 |
| 25 | 7 | 7 | 1 | 5 | 4 | 2 | 5 | 5 | 2 | 2 | 7 | 5 | 6 | 7 | 2 | 5 | 5 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 4.389 | 1.222 |
| 70 | 1 | 1 | 3 | 3 | 3 | 4 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 3 | 6 | 1 | 2 | 2 | 3 | 2 | 3 | 4 | 4 | 5 | 5 | 3 | 2 | 2 | 1 | 2 | 3 | 4 | 3 | 5 | 2.056 | 3.056 |
| 12 | 5 | 5 | 5 | 6 | 6 | 5 | 4 | 5 | 5 | 2 | 5 | 4 | 5 | 3 | 6 | 5 | 6 | 3 | 4 | 2 | 6 | 5 | 5 | 5 | 6 | 5 | 5 | 3 | 3 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 4.722 | 4.667 |
| 11 | 5 | 5 | 5 | 3 | 6 | 2 | 5 | 2 | 5 | 3 | 3 | 2 | 4 | 1 | 1 | 1 | 2 | 3 | 2 | 2 | 3 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 3 | 2 | 2 | 2 | 3 | 3 | 2 | 3 | 3.222 | 2.222 |
| CoupleID | ECR1.pn | ECR2.pn | ECR3.pn | ECR4.pn | ECR5.pn | ECR6.pn | ECR7.pn | ECR8.pn | ECR9_r.pn | ECR10.pn | ECR11_r.pn | ECR12.pn | ECR13.pn | ECR14.pn | ECR15.pn | ECR16.pn | ECR17.pn | ECR18.pn | ECR19.pn | ECR20_r.pn | ECR21.pn | ECR22_r.pn | ECR23.pn | ECR24.pn | ECR25.pn | ECR26_r.pn | ECR27_r.pn | ECR28_r.pn | ECR29_r.pn | ECR30_r.pn | ECR31_r.pn | ECR32.pn | ECR33_r.pn | ECR34_r.pn | ECR35_r.pn | ECR36_r.pn | ECR_anx.pn | ECR_avoid.pn | LEC_1.pn | LEC_2.pn | LEC_3.pn | LEC_4.pn | LEC_5.pn | LEC_6.pn | LEC_7.pn | LEC_8.pn | LEC_9.pn | LEC_10.pn | LEC_11.pn | LEC_12.pn | LEC_13.pn | LEC_14.pn | LEC_15.pn | LEC_16.pn | LEC_17.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 6 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 6 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2.167 | 2.222 | 1,2,3 | 3 | 1,2,3 | 2,3 | 1,2,3 | 2,3 | 3 | 3 | 3 | 3 | 3 | 3 | 2,3 | 3 | 5 | 3 | 1,2,3 |
| 100 | 2 | 2 | 2 | 1 | 1 | 3 | 1 | 5 | 1 | 2 | 1 | 1 | 2 | 1 | 5 | 1 | 5 | 1 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 2 | 2.056 | 1.333 | 1 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 2 | 3 | 2 | 3 | 3 | NA | NA |
| 11 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 6 | 2 | 6 | 2 | 2 | 2 | 2 | 2 | 5 | 2 | 3 | 3 | 2 | 2 | 2 | 2 | 2 | 3 | 2 | 2 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 3 | 2.611 | 2.278 | 5 | 5 | 3 | 5 | 5 | 1 | 1 | 5 | 5 | 5 | 5 | 3 | 5 | 5 | 5 | 5 | 5 |
| 62 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 6 | 2 | 2 | 6 | 2 | 2 | 2 | 5 | 2 | 5 | 2 | 2 | 1 | 6 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 6 | 6 | 2 | 3 | 2.778 | 2.167 | 3 | 1,2 | 1,2 | 3 | 3 | 2 | 2,3 | 3 | 1 | 3 | 1,2 | 3 | 1 | 3 | 3 | NA | NA |
| 9 | 3 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 4 | 2 | 2 | 2 | 5 | 5 | 3 | 5 | 5 | 3 | 4 | 5 | 5 | 3 | 4 | 4 | 5 | 3 | 4 | 3 | 3 | 3 | 4 | 5 | 4 | 2.778 | 4.000 | 2 | 3 | 1 | 2,3 | 3 | 3 | 3 | 5 | 1 | 5 | 5 | 2 | 2 | 3 | 5 | 5 | 2 |
| 33 | 2 | 2 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 2 | 2 | 3 | 1 | 3 | 2 | 1 | 1 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2.167 | 1.778 | 1 | 3 | 1 | 4 | 5 | 1 | 3 | 5 | 5 | 5 | 5 | 1 | 5 | 1 | 1 | 4 | 4 |
pt scale is missing for dad #79ec scale is missing for dad #11pt)fs)ec)pd)IRI columns# Get Column Numbers
cols <- which(colnames(df.pn)=="IRI_1.pn"):which(colnames(df.pn)=="IRI_28.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = gsub(pattern = "_", replacement = "", x = colnames(df.pn[,cols])))
df.pn <- df.pn %>%
# Recode scoring for participants 18-100 so that it matches 1-17
mutate(CoupleID = as.numeric(CoupleID)) %>% #tell R to treat Couple ID as a number
mutate_at(vars(c(IRI1.pn:IRI28.pn)),
~ifelse(CoupleID > 17 & .>=3, .-1, .)) %>%
mutate(CoupleID = as.factor(CoupleID)) %>% #tell R to treat Couple ID as a factor again
# Recode all participants to match author scoring instructions
mutate_at(vars(c(IRI1.pn:IRI28.pn)),
funs(recode(.,
'1' = '0',
'2' = '1',
'3' = '2',
'4' = '3',
'5' = '4')))
# Reverse Code Key
reverse_key <- setNames(c(0:4), 4:0)
df.pn <- df.pn %>%
# Reverse code questions 3, 4, 7, 12, 13, 14, 15, 18, 19
mutate_at(vars(c(IRI3.pn, IRI4.pn, IRI7.pn,
IRI12.pn:IRI15.pn, IRI18.pn, IRI19.pn)),
funs(recode(., !!!reverse_key)))
# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("IRI3.pn", "IRI4.pn", "IRI7.pn",
"IRI12.pn", "IRI13.pn", "IRI14.pn",
"IRI15.pn", "IRI18.pn", "IRI19.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("IRI3.pn", "IRI4.pn", "IRI7.pn",
"IRI12.pn", "IRI13.pn", "IRI14.pn",
"IRI15.pn", "IRI18.pn", "IRI19.pn")))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that IRI scores are numeric
mutate_at(vars(c(IRI1.pn:IRI28.pn)), as.numeric) %>%
# Calculate summary scores
mutate(IRI_fs.pn = sum(c(IRI1.pn, IRI5.pn, IRI7_r.pn,
IRI12_r.pn, IRI16.pn, IRI23.pn, IRI26.pn),
na.rm = F),
IRI_pt.pn = sum(c(IRI3_r.pn, IRI8.pn, IRI11.pn,
IRI15_r.pn, IRI21.pn, IRI25.pn, IRI28.pn),
na.rm = F),
IRI_ec.pn = sum(c(IRI2.pn, IRI4_r.pn, IRI9.pn,
IRI14_r.pn, IRI18_r.pn, IRI20.pn, IRI22.pn),
na.rm = F),
IRI_pd.pn = sum(c(IRI6.pn, IRI10.pn, IRI13_r.pn,
IRI17.pn, IRI19_r.pn, IRI24.pn, IRI27.pn),
na.rm = F)) %>%
# Finally, move the summary scores so that they come immediately after the measures
relocate(c(IRI_fs.pn, IRI_pt.pn, IRI_ec.pn, IRI_pd.pn), .after = IRI28.pn)
| CoupleID | IRI1.pn | IRI2.pn | IRI3_r.pn | IRI4_r.pn | IRI5.pn | IRI6.pn | IRI7_r.pn | IRI8.pn | IRI9.pn | IRI10.pn | IRI11.pn | IRI12_r.pn | IRI13_r.pn | IRI14_r.pn | IRI15_r.pn | IRI16.pn | IRI17.pn | IRI18_r.pn | IRI19_r.pn | IRI20.pn | IRI21.pn | IRI22.pn | IRI23.pn | IRI24.pn | IRI25.pn | IRI26.pn | IRI27.pn | IRI28.pn | IRI_fs.pn | IRI_pt.pn | IRI_ec.pn | IRI_pd.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 34 | 3 | 3 | 4 | 4 | 4 | 1 | 2 | 4 | 3 | 1 | 4 | 2 | 1 | 3 | 3 | 3 | 2 | 4 | 1 | 4 | 4 | 3 | 3 | 0 | 4 | 4 | 0 | 3 | 21 | 26 | 24 | 6 |
| 28 | 0 | 3 | 2 | 4 | 0 | 2 | 3 | 4 | 4 | 4 | 3 | 1 | 3 | 4 | 1 | 1 | 3 | 4 | 2 | 3 | 3 | 4 | 3 | 1 | 2 | 3 | 3 | 3 | 11 | 18 | 26 | 18 |
| 1 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| 87 | 3 | 2 | 2 | 3 | 2 | 1 | 4 | 1 | 4 | 3 | 2 | 1 | 1 | 3 | 1 | 1 | 2 | 3 | 1 | 4 | 2 | 4 | 4 | 1 | 1 | 1 | 2 | 1 | 16 | 10 | 23 | 11 |
| 39 | 0 | 0 | 4 | 4 | 0 | 0 | 2 | 2 | 1 | 1 | 2 | 3 | 2 | 2 | 1 | 2 | 2 | 4 | 0 | 3 | 3 | 3 | 3 | 0 | 1 | 3 | 4 | 1 | 13 | 14 | 17 | 9 |
| 51 | 4 | 3 | 1 | 4 | 3 | 2 | 3 | 3 | 4 | 3 | 4 | 3 | 3 | 4 | 1 | 3 | 2 | 4 | 2 | 3 | 3 | 4 | 4 | 2 | 2 | 4 | 1 | 2 | 24 | 16 | 26 | 15 |
| CoupleID | IRI1.pn | IRI2.pn | IRI3_r.pn | IRI4_r.pn | IRI5.pn | IRI6.pn | IRI7_r.pn | IRI8.pn | IRI9.pn | IRI10.pn | IRI11.pn | IRI12_r.pn | IRI13_r.pn | IRI14_r.pn | IRI15_r.pn | IRI16.pn | IRI17.pn | IRI18_r.pn | IRI19_r.pn | IRI20.pn | IRI21.pn | IRI22.pn | IRI23.pn | IRI24.pn | IRI25.pn | IRI26.pn | IRI27.pn | IRI28.pn | IRI_fs.pn | IRI_pt.pn | IRI_ec.pn | IRI_pd.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 61 | 2 | 3 | 3 | 1 | 2 | 1 | 3 | 3 | 4 | 1 | 3 | 3 | 4 | 4 | 3 | 3 | 1 | 3 | 1 | 2 | 2 | 3 | 3 | 1 | 2 | 2 | 1 | 2 | 18 | 18 | 20 | 10 |
| 94 | 2 | 3 | 3 | 3 | 3 | 1 | 1 | 2 | 4 | 3 | 3 | 3 | 3 | 3 | 1 | 3 | 1 | 4 | 1 | 4 | 2 | 4 | 3 | 1 | 3 | 3 | 3 | 3 | 18 | 17 | 25 | 13 |
| 46 | 4 | 0 | 1 | 2 | 4 | 2 | 4 | 3 | 3 | 3 | 3 | 4 | 2 | 3 | 1 | 4 | 2 | 3 | 2 | 1 | 3 | 4 | 4 | 2 | 1 | 4 | 0 | 1 | 28 | 13 | 16 | 13 |
| 59 | 0 | 3 | 2 | 2 | 0 | 1 | 1 | 3 | 3 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 1 | 4 | 1 | 3 | 3 | 3 | 3 | 0 | 3 | 3 | 0 | 3 | 12 | 19 | 21 | 8 |
| 26 | 0 | 1 | 3 | 3 | 3 | 1 | 2 | 1 | 3 | 1 | 1 | 4 | 2 | 2 | 1 | 1 | 1 | 3 | 1 | 2 | 1 | 0 | 1 | 2 | 2 | 1 | 0 | 3 | 12 | 12 | 14 | 8 |
| 53 | 3 | 3 | 3 | 2 | 2 | 2 | 1 | 3 | 3 | 2 | 2 | 3 | 2 | 2 | 3 | 0 | 1 | 3 | 2 | 3 | 2 | 3 | 2 | 2 | 2 | 2 | 1 | 2 | 13 | 17 | 19 | 12 |
ISS columns# Get Column Numbers
cols <- which(colnames(df.pn)=="ISS_1.pn"):which(colnames(df.pn)=="ISS_25.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = gsub(pattern = "_", replacement = "", x = colnames(df.pn[,cols])))
# Reverse Code Key
reverse_key <- setNames(c(1:7), 7:1)
# Reverse Score Q's 1, 2, 3, 9, 10, 12, 16, 17, 19, 21, 22, 23
df.pn <- df.pn %>%
mutate(across(c(ISS1.pn, ISS2.pn, ISS3.pn,
ISS9.pn, ISS10.pn, ISS12.pn,
ISS16.pn, ISS17.pn, ISS19.pn,
ISS21.pn, ISS22.pn, ISS23.pn),
~ recode(., !!!reverse_key)))
# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("ISS1.pn", "ISS2.pn", "ISS3.pn",
"ISS9.pn", "ISS10.pn", "ISS12.pn",
"ISS16.pn", "ISS17.pn", "ISS19.pn",
"ISS21.pn", "ISS22.pn", "ISS23.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("ISS1.pn", "ISS2.pn", "ISS3.pn",
"ISS9.pn", "ISS10.pn", "ISS12.pn",
"ISS16.pn", "ISS17.pn", "ISS19.pn",
"ISS21.pn", "ISS22.pn", "ISS23.pn")))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that scores are numeric
mutate_at(vars(c(ISS1_r.pn:ISS25.pn)), as.numeric) %>%
# Calculate total score
mutate(ISS_tot.pn = sum(c_across(ISS1_r.pn:ISS25.pn), na.rm = T)) %>%
# Recode 0 values as NA
mutate(ISS_tot.pn = na_if(ISS_tot.pn, 0)) %>%
# Move the total score so they come immediately after the items
relocate(ISS_tot.pn, .after = ISS25.pn)
| CoupleID | ISS1_r.pn | ISS2_r.pn | ISS3_r.pn | ISS4.pn | ISS5.pn | ISS6.pn | ISS7.pn | ISS8.pn | ISS9_r.pn | ISS10_r.pn | ISS11.pn | ISS12_r.pn | ISS13.pn | ISS14.pn | ISS15.pn | ISS16_r.pn | ISS17_r.pn | ISS18.pn | ISS19_r.pn | ISS20.pn | ISS21_r.pn | ISS22_r.pn | ISS23_r.pn | ISS24.pn | ISS25.pn | ISS_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 | 4 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 4 | 1 | 1 | 1 | 31 |
| 52 | 2 | 3 | 2 | 1 | 1 | 3 | 1 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 42 |
| 51 | 6 | 4 | 1 | 1 | 1 | 4 | 2 | 3 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | 4 | 2 | 6 | 2 | 5 | 6 | 1 | 4 | 64 |
| 16 | 3 | 5 | 3 | 2 | 1 | 4 | 1 | 2 | 4 | 5 | 1 | 3 | 2 | 1 | 1 | 2 | 4 | 1 | 5 | 1 | 3 | 3 | 4 | 6 | 2 | 69 |
| 59 | 3 | 3 | 3 | 1 | 1 | 7 | 2 | 4 | 2 | 2 | 1 | 2 | 1 | 1 | 2 | 1 | 1 | 4 | 3 | 1 | 1 | 2 | 2 | 2 | 2 | 54 |
| 60 | 5 | 6 | 6 | 1 | 1 | 6 | 4 | 3 | 5 | 1 | 1 | 2 | 1 | 3 | 1 | 2 | 3 | 4 | 4 | 3 | 2 | 5 | 5 | 1 | 3 | 78 |
| CoupleID | ISS1_r.pn | ISS2_r.pn | ISS3_r.pn | ISS4.pn | ISS5.pn | ISS6.pn | ISS7.pn | ISS8.pn | ISS9_r.pn | ISS10_r.pn | ISS11.pn | ISS12_r.pn | ISS13.pn | ISS14.pn | ISS15.pn | ISS16_r.pn | ISS17_r.pn | ISS18.pn | ISS19_r.pn | ISS20.pn | ISS21_r.pn | ISS22_r.pn | ISS23_r.pn | ISS24.pn | ISS25.pn | ISS_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 67 | 2 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 2 | 5 | 2 | 4 | 1 | 2 | 4 | 2 | 1 | 44 |
| 32 | 4 | 4 | 4 | 6 | 2 | 3 | 2 | 4 | 5 | 5 | 3 | 5 | 3 | 2 | 3 | 5 | 5 | 3 | 5 | 3 | 6 | 6 | 6 | 2 | 2 | 98 |
| 44 | 3 | 5 | 5 | 2 | 1 | 5 | 3 | 4 | 3 | 4 | 1 | 3 | 1 | 1 | 1 | 2 | 2 | 6 | 5 | 1 | 1 | 3 | 6 | 3 | 3 | 74 |
| 60 | 2 | 2 | 2 | 3 | 1 | 3 | 3 | 3 | 4 | 5 | 2 | 2 | 2 | 2 | 1 | 2 | 2 | 3 | 2 | 2 | 6 | 2 | 3 | 2 | 3 | 64 |
| 77 | 2 | 4 | 2 | 2 | 1 | 7 | 2 | 3 | 5 | 3 | 2 | 3 | 2 | 1 | 1 | 2 | 2 | 2 | 5 | 1 | 2 | 2 | 3 | 2 | 2 | 63 |
| 15 | 3 | 3 | 3 | 1 | 1 | 3 | 3 | 4 | 4 | 3 | 1 | 2 | 2 | 2 | 1 | 1 | 6 | 4 | 4 | 2 | 2 | 2 | 6 | 1 | 2 | 66 |
Erci removed item 16 (“I have a philosophy of life that gives my
existence significance”) from the coherence scale because of inadequate
factor loadings
Confirmation of item 16’s wording can be found here
LAP-R columns# Get Column Numbers
cols <- which(colnames(df.pn)=="LAP.R_1.pn"):which(colnames(df.pn)=="LAP.R_16.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("LAPR",
c(1, 2, 5, 7, 12, 16,
18, 26, 27, 29, 31, 35,
37, 38, 46, 48),
".pn", sep = ""))
# Reverse Code Key
reverse_key <- setNames(c(1:7), 7:1)
# Reverse Score All Items
df.pn <- df.pn %>%
mutate(across(c(LAPR1.pn:LAPR48.pn),
~ recode(., !!!reverse_key)))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that scores are numeric
mutate_at(vars(c(LAPR1.pn:LAPR48.pn)), as.numeric) %>%
# Calculate total scores/subscales
mutate(LAPR_pur.pn = sum(c(LAPR1.pn, LAPR2.pn, LAPR5.pn, LAPR18.pn,
LAPR26.pn, LAPR31.pn, LAPR37.pn, LAPR48.pn)),
LAPR_coh.pn = sum(c(LAPR7.pn, LAPR12.pn, LAPR16.pn, LAPR27.pn,
LAPR29.pn, LAPR35.pn, LAPR38.pn, LAPR46.pn)),
LAPR_pmi.pn = sum(c_across(LAPR1.pn:LAPR48.pn)))%>%
# Move the total score/subscales so they come immediately after the measures
relocate(c(LAPR_pur.pn, LAPR_coh.pn, LAPR_pmi.pn), .after = LAPR48.pn)
| CoupleID | LAPR_pur.pn | LAPR_coh.pn | LAPR_pmi.pn |
|---|---|---|---|
| 68 | 45 | 44 | 89 |
| 34 | 51 | 53 | 104 |
| 9 | 42 | 40 | 82 |
| 60 | 31 | 15 | 46 |
| 47 | 40 | 30 | 70 |
| 26 | 47 | 49 | 96 |
| CoupleID | LAPR_pur.pn | LAPR_coh.pn | LAPR_pmi.pn |
|---|---|---|---|
| 73 | 50 | 36 | 86 |
| 23 | 55 | 34 | 89 |
| 6 | NA | NA | NA |
| 55 | 35 | 42 | 77 |
| 1 | NA | NA | NA |
| 95 | 48 | 32 | 80 |
from VA
Website
LEC columns# Get Column Numbers
cols <- which(colnames(df.pn)=="LEC_1.pn"):which(colnames(df.pn)=="LEC_17.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
gsub(pattern = "_", replacement = "", x = colnames(df.pn[,cols])))
# Calculate Summary Variables
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that LEC scores are categorical
mutate(across(starts_with("LEC"), as.factor)) %>%
# Tell R that Couples 1-48 had 17 questions & Couples 49-100 had 15 questions
mutate(nquestions = ifelse(as.numeric(CoupleID) < 49, 17, 15)) %>%
# Count Occurrence of each answer type (ignoring answers 3, 4, 5)
row_count(LEC1.pn:LEC17.pn, count = "1", var = "LEC_count_1", append = T) %>%
row_count(LEC1.pn:LEC17.pn, count = "1,3", var = "LEC_count_1.3", append = T) %>%
row_count(LEC1.pn:LEC17.pn, count = "1,2", var = "LEC_count_1.2", append = T) %>%
row_count(LEC1.pn:LEC17.pn, count = "1,2,3", var = "LEC_count_1.2.3", append = T) %>%
row_count(LEC1.pn:LEC17.pn, count = "2", var = "LEC_count_2", append = T) %>%
row_count(LEC1.pn:LEC17.pn, count = "2,3", var = "LEC_count_2.3", append = T) %>%
# Calculate Mom Mean Scores (take mean rather than sum because not all parents answered the same number of questions)
mutate(LEC_hap.pn = round(sum(across(starts_with("LEC_count_1")))/nquestions,2)) %>%
mutate(LEC_wit.pn = round(sum(LEC_count_2, LEC_count_2.3)/nquestions, 2)) %>%
mutate(LEC_hapwit.pn = round(sum(across(starts_with("LEC_count")))/nquestions,2)) %>%
# Remove new helper columns
select(-starts_with("LEC_count"), -nquestions) %>%
# Finally, move the summary scores so that they come immediately after the measures
relocate(c(LEC_hap.pn:LEC_hapwit.pn), .after = LEC17.pn)
| CoupleID | LEC1.pn | LEC2.pn | LEC3.pn | LEC4.pn | LEC5.pn | LEC6.pn | LEC7.pn | LEC8.pn | LEC9.pn | LEC10.pn | LEC11.pn | LEC12.pn | LEC13.pn | LEC14.pn | LEC15.pn | LEC16.pn | LEC17.pn | LEC_hap.pn | LEC_wit.pn | LEC_hapwit.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 84 | 1 | 3 | 2 | 2 | 3 | 2 | 3 | 3 | 1 | 3 | 2 | 3 | 2,3 | 3 | 1 | NA | NA | 0.20 | 0.33 | 0.53 |
| 63 | 3 | 3 | 1 | 3 | 3 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 2 | 3 | 3 | NA | NA | 0.07 | 0.13 | 0.20 |
| 73 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 0.00 | 0.00 | 0.00 |
| 51 | 1 | 2 | 2 | 2 | 3 | 1 | 3 | 3 | 1 | 3 | 2 | 2 | 1 | 3 | 1 | NA | NA | 0.33 | 0.33 | 0.67 |
| 17 | 4 | 4 | 3 | 4 | 5 | 3 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 0.00 | 0.00 | 0.00 |
| 83 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 1 | 1 | 3 | 3 | 3 | 3 | 3 | 3 | NA | NA | 0.13 | 0.00 | 0.13 |
| CoupleID | LEC1.pn | LEC2.pn | LEC3.pn | LEC4.pn | LEC5.pn | LEC6.pn | LEC7.pn | LEC8.pn | LEC9.pn | LEC10.pn | LEC11.pn | LEC12.pn | LEC13.pn | LEC14.pn | LEC15.pn | LEC16.pn | LEC17.pn | LEC_hap.pn | LEC_wit.pn | LEC_hapwit.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 98 | 1,2 | 2 | 1,2 | 3 | 3 | 1,2 | 3 | 3 | 2 | 2 | 2 | 2 | 1,2 | 3 | 1 | NA | NA | 0.33 | 0.33 | 0.67 |
| 25 | 5 | 5 | 1 | 5 | 5 | 1 | 1 | 3 | 1 | 5 | 5 | 2 | 5 | 3 | 1 | 5 | 5 | 0.29 | 0.06 | 0.35 |
| 94 | 3 | 3 | 2 | 2 | 3 | 2 | 3 | 3 | 2 | 3 | 2 | 3 | 1,2 | 3 | 1,2 | NA | NA | 0.13 | 0.33 | 0.47 |
| 84 | 2 | 2 | 1,2 | 3 | 3 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 3 | 1,2 | NA | NA | 0.20 | 0.60 | 0.80 |
| 40 | 1,2 | 3 | 2,3 | 1 | 5 | 4,5 | 5 | 5 | 5 | 5 | 5 | 5 | 4 | 5 | 3 | 5 | 4 | 0.12 | 0.06 | 0.18 |
| 78 | 3 | 2 | 1,2 | 3 | 3 | 1 | 1 | 3 | 2 | 3 | 2 | 1,2 | 1,2 | 3 | 3 | NA | NA | 0.33 | 0.20 | 0.53 |
LES columns# Get Column Numbers
cols <- which(colnames(df.pn)=="LES.1_1.pn"):which(colnames(df.pn)=="LES.1_22.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("LES", 1:22, "_hap.pn", sep = ""))
# Get Column Numbers
cols <- which(colnames(df.pn)=="LES.2_1.pn"):which(colnames(df.pn)=="LES.2_22.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("LES", 1:22, "_impact.pn", sep = ""))
LES scoresdf.pn <- df.pn %>%
# Re-code happened items
mutate_at(vars(c(LES1_hap.pn:LES22_hap.pn)),
~ recode(.,
'1' = '1',
'2' = '0')) %>%
# Re-code impact items
mutate_at(vars(c(LES1_impact.pn:LES22_impact.pn)),
~ recode(.,
'1' = '-3',
'2' = '-2',
'3' = '-1',
'4' = '0',
'5' = '1',
'6' = '2',
'7' = '3'))
impact scores when happened =
0df.pn <- df.pn %>%
# Tell R to treat columns as numeric
mutate_at(vars(c(LES1_hap.pn:LES22_impact.pn)), as.numeric) %>%
mutate(LES1_impact.pn = ifelse(LES1_hap.pn==1, LES1_impact.pn, NA),
LES2_impact.pn = ifelse(LES2_hap.pn==1, LES2_impact.pn, NA),
LES3_impact.pn = ifelse(LES3_hap.pn==1, LES3_impact.pn, NA),
LES4_impact.pn = ifelse(LES4_hap.pn==1, LES4_impact.pn, NA),
LES5_impact.pn = ifelse(LES5_hap.pn==1, LES5_impact.pn, NA),
LES6_impact.pn = ifelse(LES6_hap.pn==1, LES6_impact.pn, NA),
LES7_impact.pn = ifelse(LES7_hap.pn==1, LES7_impact.pn, NA),
LES8_impact.pn = ifelse(LES8_hap.pn==1, LES8_impact.pn, NA),
LES9_impact.pn = ifelse(LES9_hap.pn==1, LES9_impact.pn, NA),
LES10_impact.pn = ifelse(LES10_hap.pn==1, LES10_impact.pn, NA),
LES11_impact.pn = ifelse(LES11_hap.pn==1, LES11_impact.pn, NA),
LES12_impact.pn = ifelse(LES12_hap.pn==1, LES12_impact.pn, NA),
LES13_impact.pn = ifelse(LES13_hap.pn==1, LES13_impact.pn, NA),
LES14_impact.pn = ifelse(LES14_hap.pn==1, LES14_impact.pn, NA),
LES15_impact.pn = ifelse(LES15_hap.pn==1, LES15_impact.pn, NA),
LES16_impact.pn = ifelse(LES16_hap.pn==1, LES16_impact.pn, NA),
LES17_impact.pn = ifelse(LES17_hap.pn==1, LES17_impact.pn, NA),
LES18_impact.pn = ifelse(LES18_hap.pn==1, LES18_impact.pn, NA),
LES19_impact.pn = ifelse(LES19_hap.pn==1, LES19_impact.pn, NA),
LES20_impact.pn = ifelse(LES20_hap.pn==1, LES20_impact.pn, NA),
LES21_impact.pn = ifelse(LES21_hap.pn==1, LES21_impact.pn, NA),
LES22_impact.pn = ifelse(LES22_hap.pn==1, LES22_impact.pn, NA))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R to treat columns as numeric
mutate_at(vars(c(LES1_hap.pn:LES22_impact.pn)), as.numeric) %>%
# Calculate total scores
mutate(LES_tot.pn = sum(c_across(LES1_impact.pn:LES22_impact.pn), na.rm = T), 3) %>%
mutate(LES_pos.pn = {
x <- c_across(ends_with('impact.pn'))
sum(x[x > 0], na.rm = T)
}) %>%
mutate(LES_neg.pn = {
x <- c_across(ends_with('impact.pn'))
sum(x[x < 0], na.rm = T)
}) %>%
# Recode 0 values as NA
mutate(LES_tot.pn = na_if(LES_tot.pn, 0)) %>%
mutate(LES_pos.pn = na_if(LES_pos.pn, 0)) %>%
mutate(LES_neg.pn = na_if(LES_neg.pn, 0)) %>%
# Move the total score so they come immediately after the measures
relocate(c(LES_pos.pn, LES_neg.pn, LES_tot.pn), .after = LES22_impact.pn)
| CoupleID | LES1_hap.pn | LES2_hap.pn | LES3_hap.pn | LES4_hap.pn | LES5_hap.pn | LES6_hap.pn | LES7_hap.pn | LES8_hap.pn | LES9_hap.pn | LES10_hap.pn | LES11_hap.pn | LES12_hap.pn | LES13_hap.pn | LES14_hap.pn | LES15_hap.pn | LES16_hap.pn | LES17_hap.pn | LES18_hap.pn | LES19_hap.pn | LES20_hap.pn | LES21_hap.pn | LES22_hap.pn | LES1_impact.pn | LES2_impact.pn | LES3_impact.pn | LES4_impact.pn | LES5_impact.pn | LES6_impact.pn | LES7_impact.pn | LES8_impact.pn | LES9_impact.pn | LES10_impact.pn | LES11_impact.pn | LES12_impact.pn | LES13_impact.pn | LES14_impact.pn | LES15_impact.pn | LES16_impact.pn | LES17_impact.pn | LES18_impact.pn | LES19_impact.pn | LES20_impact.pn | LES21_impact.pn | LES22_impact.pn | LES_pos.pn | LES_neg.pn | LES_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 24 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | NA | 0 | NA | NA | NA | NA | NA | NA | NA | NA | NA | 2 | NA | 3 | NA | NA | NA | NA | NA | NA | NA | -2 | NA | NA | 5 | -2 | 3 |
| 28 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | NA | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | NA | 1 | NA | -1 | NA | NA | NA | NA | NA | NA | NA | 3 | NA | NA | NA | NA | NA | NA | NA | NA | 3 | NA | NA | 2 | 8 | -1 | 7 |
| 26 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | NA | 0 | NA | NA | NA | NA | NA | NA | NA | NA | NA | 2 | NA | NA | NA | -1 | NA | NA | NA | NA | 2 | NA | NA | NA | 4 | -1 | 3 |
| 12 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | NA | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | 1 | NA | 2 | NA | 2 | NA | NA | NA | NA | NA | 3 | 1 | 1 | NA | NA | NA | NA | -3 | NA | NA | NA | NA | -3 | 9 | -6 | 3 |
| 36 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | NA | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | NA | 0 | NA | -1 | NA | 1 | NA | NA | 3 | NA | NA | 3 | 3 | 3 | -1 | NA | -3 | NA | -1 | -3 | -1 | 0 | NA | NA | 13 | -10 | 3 |
| 13 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | NA | 0 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| CoupleID | LES1_hap.pn | LES2_hap.pn | LES3_hap.pn | LES4_hap.pn | LES5_hap.pn | LES6_hap.pn | LES7_hap.pn | LES8_hap.pn | LES9_hap.pn | LES10_hap.pn | LES11_hap.pn | LES12_hap.pn | LES13_hap.pn | LES14_hap.pn | LES15_hap.pn | LES16_hap.pn | LES17_hap.pn | LES18_hap.pn | LES19_hap.pn | LES20_hap.pn | LES21_hap.pn | LES22_hap.pn | LES1_impact.pn | LES2_impact.pn | LES3_impact.pn | LES4_impact.pn | LES5_impact.pn | LES6_impact.pn | LES7_impact.pn | LES8_impact.pn | LES9_impact.pn | LES10_impact.pn | LES11_impact.pn | LES12_impact.pn | LES13_impact.pn | LES14_impact.pn | LES15_impact.pn | LES16_impact.pn | LES17_impact.pn | LES18_impact.pn | LES19_impact.pn | LES20_impact.pn | LES21_impact.pn | LES22_impact.pn | LES_pos.pn | LES_neg.pn | LES_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 38 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | NA | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | NA | NA | NA | NA | NA | NA | 1 | NA | 3 | NA | 2 | 3 | NA | NA | NA | -2 | 2 | NA | NA | NA | NA | NA | 11 | -2 | 9 |
| 34 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | NA | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | NA | NA | NA | NA | NA | NA | NA | NA | 3 | NA | 1 | -3 | NA | NA | 1 | NA | NA | NA | 1 | NA | NA | NA | 6 | -3 | 3 |
| 37 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | NA | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | NA | -3 | NA | NA | NA | NA | NA | NA | -3 | 3 | NA | 2 | 3 | -1 | NA | NA | NA | -2 | 0 | 2 | 0 | NA | NA | 10 | -9 | 1 |
| 65 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| 66 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| 11 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | NA | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | NA | NA | NA | NA | NA | NA | NA | -1 | 3 | NA | NA | NA | NA | NA | NA | NA | NA | NA | 2 | NA | NA | NA | 5 | -1 | 4 |
MAAS columns# Get Column Numbers
cols <- which(colnames(df.pn)=="Q106.pn"):which(colnames(df.pn)=="Q124.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("MAAS", 1:19, ".pn", sep = ""))
# Reverse Code Key
reverse_key <- setNames(c(1:5), 5:1)
# Reverse Score Q's 1, 3, 5, 6, 7, 9, 10, 12, 15, 16, 18
df.pn <- df.pn %>%
mutate_at(vars(c(MAAS1.pn, MAAS3.pn, MAAS5.pn,
MAAS6.pn, MAAS7.pn, MAAS9.pn,
MAAS10.pn, MAAS12.pn, MAAS15.pn,
MAAS16.pn, MAAS18.pn)),
~recode(., !!!reverse_key))
# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("MAAS1.pn", "MAAS3.pn", "MAAS5.pn",
"MAAS6.pn", "MAAS7.pn", "MAAS9.pn",
"MAAS10.pn", "MAAS12.pn", "MAAS15.pn",
"MAAS16.pn", "MAAS18.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("MAAS1.pn", "MAAS3.pn", "MAAS5.pn",
"MAAS6.pn", "MAAS7.pn", "MAAS9.pn",
"MAAS10.pn", "MAAS12.pn", "MAAS15.pn",
"MAAS16.pn", "MAAS18.pn")))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that scores are numeric
mutate_at(vars(c(MAAS1_r.pn:MAAS19.pn)), as.numeric) %>%
# Calculate total scores/subscales
mutate(MAAS_tot.pn = round(sum(c_across(MAAS1_r.pn:MAAS19.pn), na.rm = T), 3),
MAAS_qual.pn = round(sum(c(MAAS19.pn, MAAS3_r.pn, MAAS11.pn,
MAAS12_r.pn, MAAS15_r.pn, MAAS13.pn,
MAAS16_r.pn, MAAS9_r.pn, MAAS10_r.pn,
MAAS6_r.pn, MAAS7_r.pn), na.rm = T), 3),
MAAS_pre.pn = round(sum(c(MAAS1_r.pn, MAAS5_r.pn, MAAS8.pn,
MAAS4.pn, MAAS2.pn, MAAS17.pn,
MAAS18_r.pn, MAAS14.pn), na.rm = T), 3)) %>%
# Move the total score/subscales so they come immediately after the measures
relocate(c(MAAS_qual.pn, MAAS_pre.pn, MAAS_tot.pn), .after = MAAS19.pn)
df.pn <- df.pn %>%
mutate(across(c(MAAS_tot.pn:MAAS_pre.pn), ~na_if(., 0)))
PAAS columns# Get Column Numbers
cols <- which(colnames(df.pn)=="Q90.1.pn"):which(colnames(df.pn)=="Q105.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("PAAS", 1:16, ".pn", sep = ""))
# Reverse Code Key
reverse_key <- setNames(c(1:5), 5:1)
# Reverse Score Q's 1, 3, 5, 6, 7, 8, 12, 13, 15
df.pn <- df.pn %>%
mutate_at(vars(c(PAAS1.pn, PAAS3.pn, PAAS5.pn,
PAAS6.pn, PAAS7.pn, PAAS8.pn,
PAAS12.pn, PAAS13.pn, PAAS15.pn)),
funs(recode(., !!!reverse_key)))
# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("PAAS1.pn", "PAAS3.pn", "PAAS5.pn",
"PAAS6.pn", "PAAS7.pn", "PAAS8.pn",
"PAAS12.pn", "PAAS13.pn", "PAAS15.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("PAAS1.pn", "PAAS3.pn", "PAAS5.pn",
"PAAS6.pn", "PAAS7.pn", "PAAS8.pn",
"PAAS12.pn", "PAAS13.pn", "PAAS15.pn")))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that scores are numeric
mutate_at(vars(c(PAAS1_r.pn:PAAS16.pn)), as.numeric) %>%
# Calculate total scores/subscales
mutate(PAAS_tot.pn = round(sum(c_across(PAAS1_r.pn:PAAS16.pn), na.rm = T), 3),
PAAS_qual.pn = round(sum(c(PAAS7_r.pn, PAAS3_r.pn, PAAS9.pn,
PAAS12_r.pn, PAAS11.pn, PAAS2.pn,
PAAS16.pn, PAAS1_r.pn, PAAS6_r.pn,
PAAS13_r.pn), na.rm = T), 3),
PAAS_pre.pn = round(sum(c(PAAS10.pn, PAAS15_r.pn, PAAS14.pn,
PAAS5_r.pn, PAAS4.pn, PAAS8_r.pn),
na.rm = T), 3)) %>%
# Move the total score/subscales so they come immediately after the measures
relocate(c(PAAS_qual.pn, PAAS_pre.pn, PAAS_tot.pn), .after = PAAS16.pn)
df.pn <- df.pn %>%
mutate(across(c(PAAS_tot.pn:PAAS_pre.pn), ~na_if(., 0)))
| CoupleID | MAAS1_r.pn | MAAS2.pn | MAAS3_r.pn | MAAS4.pn | MAAS5_r.pn | MAAS6_r.pn | MAAS7_r.pn | MAAS8.pn | MAAS9_r.pn | MAAS10_r.pn | MAAS11.pn | MAAS12_r.pn | MAAS13.pn | MAAS14.pn | MAAS15_r.pn | MAAS16_r.pn | MAAS17.pn | MAAS18_r.pn | MAAS19.pn | MAAS_qual.pn | MAAS_pre.pn | MAAS_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 64 | 3 | 2 | 4 | 4 | 3 | 5 | 3 | 1 | 4 | 4 | 4 | 5 | 3 | 4 | 4 | 4 | 1 | 3 | 5 | 45 | 21 | 66 |
| 18 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 0 | NA | NA |
| 48 | 4 | 4 | 5 | 4 | 2 | 4 | 4 | 3 | 4 | 3 | 5 | 5 | 4 | 3 | 5 | 5 | 1 | 5 | 5 | 49 | 26 | 75 |
| 42 | 2 | 2 | 4 | 2 | 2 | 4 | 2 | 1 | 3 | 3 | 4 | 5 | 2 | 3 | 4 | 5 | 1 | 4 | 4 | 40 | 17 | 57 |
| 3 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 0 | NA | NA |
| 100 | 3 | 2 | 4 | 2 | 2 | 4 | 3 | 2 | 5 | 3 | 4 | 5 | 3 | 3 | 5 | 5 | 2 | 4 | 5 | 46 | 20 | 66 |
| CoupleID | PAAS1_r.pn | PAAS2.pn | PAAS3_r.pn | PAAS4.pn | PAAS5_r.pn | PAAS6_r.pn | PAAS7_r.pn | PAAS8_r.pn | PAAS9.pn | PAAS10.pn | PAAS11.pn | PAAS12_r.pn | PAAS13_r.pn | PAAS14.pn | PAAS15_r.pn | PAAS16.pn | PAAS_qual.pn | PAAS_pre.pn | PAAS_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 37 | 4 | 4 | 5 | 5 | 4 | 5 | 5 | 4 | 5 | 5 | 5 | 5 | 5 | 4 | 5 | 5 | 48 | 27 | 75 |
| 4 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 0 | NA | NA |
| 61 | 4 | 4 | 5 | 4 | 3 | 5 | 4 | 4 | 4 | 3 | 4 | 5 | 4 | 2 | 5 | 5 | 44 | 21 | 65 |
| 12 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 0 | NA | NA |
| 2 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 0 | NA | NA |
| 64 | 2 | 3 | 3 | 5 | 2 | 3 | 4 | 5 | 4 | 3 | 4 | 4 | 3 | 1 | 4 | 4 | 34 | 20 | 54 |
MAT Columns# Get Column Numbers
cols <- which(colnames(df.pn)=="MAT_1.pn"):which(colnames(df.pn)=="MAT_15.pn")
# Replace Names in Data Set
setnames(df.pn,
old = colnames(df.pn[,cols]),
new =
c(paste("MAT", 1:11, ".pn", sep = ""),
"MAT12a.pn", "MAT12b.pn",
paste("MAT", 13:15, ".pn", sep = "")))
df.pn <- df.pn %>%
# Convert MAT Q1
mutate_at(vars(c(MAT1.pn)),
funs(recode(.,
'1' = '0',
'2' = '2',
'3' = '7',
'4' = '15',
'5' = '20',
'6' = '25',
'7' = '35'))) %>%
# Convert MAT Q4
mutate_at(vars(c(MAT4.pn)),
funs(recode(.,
'1' = '8',
'2' = '6',
'3' = '4',
'4' = '2',
'5' = '1',
'6' = '0'))) %>%
# Convert MAT Q6
mutate_at(vars(c(MAT6.pn)),
funs(recode(.,
'1' = '15',
'2' = '12',
'3' = '9',
'4' = '4',
'5' = '1',
'6' = '0'))) %>%
# Convert MAT Q10
mutate_at(vars(c(MAT10.pn)),
funs(recode(.,
'1' = '0',
'2' = '2',
'3' = '10'))) %>%
# Convert MAT Q11
mutate_at(vars(c(MAT11.pn)),
funs(recode(.,
'1' = '10',
'2' = '8',
'3' = '3',
'4' = '0'))) %>%
# Convert MAT 13
mutate_at(vars(c(MAT13.pn)),
funs(recode(.,
'1' = '0',
'2' = '3',
'3' = '8',
'4' = '15'))) %>%
# Convert MAT 14
mutate_at(vars(c(MAT14.pn)),
funs(recode(.,
'1' = '15',
'2' = '0',
'3' = '1'))) %>%
# Convert MAT 15
mutate_at(vars(c(MAT15.pn)),
funs(recode(.,
'1' = '0',
'2' = '2',
'3' = '10',
'4' = '10'))) %>%
# Convert MAT Q's 2, 3, 5, 7, 8, 9
mutate_at(vars(c(MAT2.pn, MAT3.pn, MAT5.pn,
MAT7.pn:MAT9.pn)),
funs(recode(.,
'1' = '5',
'2' = '4',
'3' = '3',
'4' = '2',
'5' = '1',
'6' = '0'))) %>%
# Convert MAT 12
mutate(MAT12.pn = ifelse(MAT12a.pn != MAT12b.pn, '2',
ifelse(MAT12a.pn == '1', '3',
ifelse(MAT12a.pn == '2', '10', NA)))) %>%
relocate(MAT12.pn, .after = MAT12b.pn) %>%
select(-c(MAT12a.pn, MAT12b.pn))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that MAT scores are numeric
mutate_at(vars(c(MAT1.pn:MAT15.pn)), as.numeric) %>%
# Calculate total scores
mutate(MAT_tot.pn = sum(c_across(MAT1.pn:MAT15.pn))) %>%
# Move the summmary scores so they come immediately after the measures
relocate(MAT_tot.pn, .after = MAT15.pn)
| CoupleID | MAT1.pn | MAT2.pn | MAT3.pn | MAT4.pn | MAT5.pn | MAT6.pn | MAT7.pn | MAT8.pn | MAT9.pn | MAT10.pn | MAT11.pn | MAT12.pn | MAT13.pn | MAT14.pn | MAT15.pn | MAT_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 73 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| 18 | 35 | 4 | 4 | 6 | 4 | 9 | 4 | 4 | 4 | 10 | 8 | 10 | 15 | 15 | 10 | 142 |
| 87 | 20 | 3 | 4 | 4 | 4 | 4 | 4 | 4 | 3 | 0 | 8 | 10 | 8 | 15 | 10 | 101 |
| 29 | 20 | 3 | 3 | 6 | 4 | 9 | 2 | 5 | 4 | 10 | 8 | 3 | 15 | 15 | 10 | 117 |
| 49 | 20 | 4 | 4 | 6 | 4 | 9 | 3 | 4 | 3 | 10 | 8 | 10 | 15 | 15 | 10 | 125 |
| 20 | 7 | 4 | 4 | 4 | 5 | 9 | 4 | 3 | 4 | 0 | 10 | 2 | 3 | 0 | 10 | 69 |
| CoupleID | MAT1.pn | MAT2.pn | MAT3.pn | MAT4.pn | MAT5.pn | MAT6.pn | MAT7.pn | MAT8.pn | MAT9.pn | MAT10.pn | MAT11.pn | MAT12.pn | MAT13.pn | MAT14.pn | MAT15.pn | MAT_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 46 | 15 | 3 | 5 | 8 | 5 | 12 | 5 | 5 | 4 | 10 | 10 | 3 | 8 | 15 | 10 | 118 |
| 34 | 20 | 4 | 3 | 6 | 4 | 9 | 2 | 3 | 2 | 0 | 8 | 3 | 8 | 15 | 10 | 97 |
| 82 | 20 | 4 | 4 | 6 | 5 | 9 | 4 | 4 | 4 | 10 | 10 | 2 | 8 | 15 | 10 | 115 |
| 95 | 35 | 4 | 3 | 6 | 4 | 9 | 3 | 5 | 3 | 10 | 10 | 10 | 15 | 15 | 10 | 142 |
| 69 | 35 | 5 | 5 | 8 | 5 | 15 | 5 | 5 | 5 | 10 | 10 | 10 | 15 | 15 | 10 | 158 |
| 98 | 25 | 4 | 4 | 6 | 4 | 9 | 4 | 5 | 4 | 10 | 8 | 10 | 15 | 15 | 10 | 133 |
PAS Columns# Get Column Numbers
cols <- which(colnames(df.pn)=="Q72_1.pn"):which(colnames(df.pn)=="Q73_7.pn")
# Set New Names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("PAS", 1:13, ".pn", sep = ""))
PAS Items 1, 2, 3# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("PAS1.pn", "PAS2.pn", "PAS3.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("PAS1.pn", "PAS2.pn", "PAS3.pn")))
df.pn <- df.pn %>%
# First, make sure R knows to treat PSAM values as numbers
mutate_at(vars(c(PAS1_r.pn:PAS13.pn)), as.numeric)%>%
# Then tell R that we want to take the mean across a row
rowwise() %>%
# Now take the mean of the 10 items included in the newer version of the measure
mutate(PAS_mean.pn = mean(c(PAS1_r.pn, PAS3_r.pn, c_across(PAS4.pn:PAS8.pn), c_across(PAS11.pn:PAS13.pn)), na.rm = T)) %>%
# Finally, move the mean scores so that they come immediately after the measures
relocate(PAS_mean.pn, .after = PAS13.pn)
# When we took the mean, it introduced NaN, which R views as text rather than as a true NA
df.pn$PAS_mean.pn[df.pn$PAS_mean.pn == "NaN"] <- NA
| CoupleID | PAS1_r.pn | PAS2_r.pn | PAS3_r.pn | PAS4.pn | PAS5.pn | PAS6.pn | PAS7.pn | PAS8.pn | PAS9.pn | PAS10.pn | PAS11.pn | PAS12.pn | PAS13.pn | PAS_mean.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 14 | 2 | 3 | 3 | 2 | 1 | 1 | 2 | 1 | 3 | 3 | 3 | 3 | 1 | 1.9 |
| 42 | 1 | 3 | 1 | 1 | 1 | 2 | 2 | 1 | 2 | 1 | 1 | 2 | 1 | 1.3 |
| 95 | 3 | 3 | 3 | 3 | 3 | 3 | 4 | 4 | 1 | 2 | 2 | 2 | 2 | 2.9 |
| 19 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 4 | 2 | 1 | 1 | 1.2 |
| 43 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 2 | 2.1 |
| 72 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | 2 | 2 | 2 | 1 | 1.3 |
| CoupleID | PAS1_r.pn | PAS2_r.pn | PAS3_r.pn | PAS4.pn | PAS5.pn | PAS6.pn | PAS7.pn | PAS8.pn | PAS9.pn | PAS10.pn | PAS11.pn | PAS12.pn | PAS13.pn | PAS_mean.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 1 | 1 | 1 | 2 | 1 | 2 | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1.6 |
| 17 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 2 | 2 | 2 | 1.4 |
| 95 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 2 | 1 | 2 | 1 | 2 | 2 | 1.5 |
| 4 | 1 | 2 | 2 | 1 | 1 | 2 | 1 | 1 | 2 | 1 | 2 | 2 | 2 | 1.5 |
| 66 | 1 | 3 | 1 | 2 | 2 | 3 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 1.9 |
| 68 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 3 | 1 | 2 | 2 | 2 | 1.9 |
PregSymp Columns# Get Column Numbers
cols <- which(colnames(df.pn)=="PregSymp.1_1.pn"):which(colnames(df.pn)=="PregSymp.1_44.pn")
# Set New Names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("PregSymp", 1:44, "_presence.pn", sep = ""))
# Get Column Numbers
cols <- which(colnames(df.pn)=="PregSymp.2_1.pn"):which(colnames(df.pn)=="PregSymp.2_44.pn")
# Set New Names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("PregSymp", 1:44, "_severe.pn", sep = ""))
# Get Column Numbers
cols <- which(colnames(df.pn)=="PregSymp.3_1.pn"):which(colnames(df.pn)=="PregSymp.3_44.pn")
# Replace ".3" in column names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("PregSymp", 1:44, "_distress.pn", sep = ""))
df.pn <- select(df.pn, -c(starts_with("PregSymp.4")))
Pregnancy Symptom Presence to 1/0 dummydf.pn <- df.pn %>%
mutate_at(vars(c(PregSymp1_presence.pn:PregSymp44_presence.pn)),
funs(recode(.,
'1' = '1',
'2' = '0',
)))
df.pn <- df.pn %>%
mutate_at(vars(c(PregSymp1_presence.pn:PregSymp44_distress.pn)), as.numeric) %>%
rowwise() %>%
# Presence
mutate(PregSymp_total.pn = sum(c_across(PregSymp1_presence.pn:PregSymp44_presence.pn), na.rm = T)) %>%
# Severity
mutate(PregSymp_tot_severe.pn = mean(c_across(PregSymp1_severe.pn:PregSymp44_severe.pn), na.rm = T)) %>%
# Distress
mutate(PregSymp_tot_distress.pn = mean(c_across(PregSymp1_distress.pn:PregSymp44_distress.pn), na.rm = T)) %>%
# Finally, move the summary scores so that they come immediately after the measure
relocate(c(PregSymp_total.pn, PregSymp_tot_severe.pn, PregSymp_tot_distress.pn),
.after = PregSymp44_distress.pn)
df.pn$PregSymp_total.pn[df.pn$CoupleID == 37 | df.pn$CoupleID == 73] <- NA
# Change NA variables
df.pn$PregSymp_tot_severe.pn[df.pn$PregSymp_tot_severe.pn == "NaN"] <- NA
df.pn$PregSymp_tot_distress.pn[df.pn$PregSymp_tot_distress.pn == "NaN"] <- NA
| CoupleID | PregSymp_total.pn | PregSymp_tot_severe.pn | PregSymp_tot_distress.pn |
|---|---|---|---|
| 88 | 31 | 2.903226 | 2.266667 |
| 33 | 21 | 1.047619 | 1.000000 |
| 50 | 8 | 2.625000 | 2.625000 |
| 58 | 20 | 1.550000 | 3.650000 |
| 79 | 25 | 3.444444 | 2.961539 |
| 70 | 18 | 1.888889 | 2.500000 |
| CoupleID | PregSymp_total.pn | PregSymp_tot_severe.pn | PregSymp_tot_distress.pn |
|---|---|---|---|
| 44 | 4 | 2.000000 | 2.750000 |
| 65 | 14 | 3.714286 | 2.000000 |
| 17 | 5 | 3.800000 | 4.000000 |
| 89 | 4 | 8.000000 | 3.000000 |
| 10 | 6 | 1.666667 | 1.428571 |
| 7 | 1 | 1.000000 | NA |
PSAM Columns# Get Column Numbers
cols <- which(colnames(df.pn)=="PSAM_1.pn"):which(colnames(df.pn)=="PSAM_13.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = gsub(pattern = "_", replacement = "", x = colnames(df.pn[,cols])))
df.pn <- df.pn %>%
# First, make sure R knows to treat PSAM values as numbers
mutate_at(vars(c(PSAM1.pn:PSAM13.pn)), as.numeric) %>%
# Then tell R that we want to take the mean across a row
rowwise() %>%
# Now take the mean of the four embedded items
mutate(PSAM_mean.pn = mean(c(PSAM1.pn, PSAM5.pn, PSAM9.pn, PSAM11.pn), na.rm = T)) %>%
# Finally, move the mean scores so that they come immediately after the measures
relocate(PSAM_mean.pn, .after = PSAM13.pn)
# When we took the mean, it introduced NaN, which R views as text rather than as a true NA
df.pn$PSAM_mean.pn[df.pn$PSAM_mean.pn == "NaN"] <- NA
| CoupleID | PSAM1.pn | PSAM5.pn | PSAM9.pn | PSAM11.pn | PSAM_mean.pn |
|---|---|---|---|---|---|
| 15 | 3 | 3 | 5 | 4 | 3.75 |
| 13 | 2 | 3 | 3 | 2 | 2.50 |
| 94 | 3 | 2 | 2 | 2 | 2.25 |
| 45 | 1 | 3 | 1 | 1 | 1.50 |
| 80 | 4 | 3 | 2 | 1 | 2.50 |
| 41 | 1 | 2 | 3 | 1 | 1.75 |
| CoupleID | PSAM1.pn | PSAM5.pn | PSAM9.pn | PSAM11.pn | PSAM_mean.pn |
|---|---|---|---|---|---|
| 100 | 2 | 2 | 2 | 1 | 1.75 |
| 98 | 2 | 3 | 3 | 3 | 2.75 |
| 61 | 3 | 3 | 2 | 1 | 2.25 |
| 81 | 3 | 3 | 3 | 3 | 3.00 |
| 31 | 1 | 2 | 3 | 1 | 1.75 |
| 12 | 1 | 2 | 1 | 1 | 1.25 |
Q98and two
Q96
Q98.1.pn.dad appears to be the Paternal Attachment
Scale, while Q98.pn.mom and Q98.pn.dad are
part of the PSQIQ96.pn.dad appears to be the Paternal Attachment Scale,
whileQ96_1 and Q96_2 are part of the PSQIQuestion 5 has sub-questions a-j
Scoring for 7 is the same as for 6 (which is listed below)
PSQI columns are in orderdf.pn <- df.pn %>%
relocate(c(Q94.pn), .after = Q98.pn)
PSQI columns# Mom questions 1-4
# Get Column Numbers
cols <- which(colnames(df.pn)=="Q84.pn"):which(colnames(df.pn)=="Q90.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("PSQI", 1:4,".pn", sep = ""))
# Mom question 5
## Get Column Numbers
cols <- which(colnames(df.pn)=="Q92_1.pn"):which(colnames(df.pn)=="Q92_10.pn")
## Set names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("PSQI", "5", letters[1:10], ".pn", sep = ""))
# Mom questions 6-9
# Get Column Numbers
cols <- which(colnames(df.pn)=="Q96_1.pn"):which(colnames(df.pn)=="Q94.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("PSQI", 6:9, ".pn", sep = ""))
df.pn <- df.pn %>%
ungroup() %>%
# Upper-to-lower case and delete spaces
mutate(PSQI1.pn = tolower(PSQI1.pn)) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, " ", "")) %>%
# Remove common words/punctuation
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "between", "")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "around", "")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "at", "")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "-", ":00")) %>%
# Specific Cases
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "iusuallygotobed9", "9:00")) %>%
mutate(PSQI1.pn = na_if(PSQI1.pn, "yes,always")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "aspecifictime[(]9pm[)]", "21:00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "inthemorning", "am")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "and2o'clock", "am")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "23p", "23:00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "p[.]m[.]", ":00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "or", ":00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "to", "pm")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "10[.]30pm", "10:30")) %>%
# Convert to military
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "midnight", "00:00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "12am", "00:00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "12:001am", "00:00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "12:30am", "00:30")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "1am", "01:00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "2am", "02:00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "3am", "03:00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "7am", "07:00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "8", "20")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "9", "21")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "10", "22")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "11", "23")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "eleven", "23")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "pm", ":00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "p", ":00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "am", ":00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "a", ":00")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "0:00", "00:00")) %>%
# Reduce to 5 digits
mutate(PSQI1.pn = str_sub(PSQI1.pn, start = 1, end = 5)) %>%
# Add missing minutes
mutate(PSQI1.pn = ifelse(str_length(PSQI1.pn)==2, str_c(PSQI1.pn, ":00"), PSQI1.pn)) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "2230", "22:30")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "22.30", "22:30")) %>%
mutate(PSQI1.pn = str_replace_all(PSQI1.pn, "000:0", "00:00")) %>%
# Add missing seconds
mutate(PSQI1.pn = str_c(PSQI1.pn, ":00"), PSQI1.pn) %>%
# Convert to time format
mutate(PSQI1.pn = times(PSQI1.pn))
df.pn <- df.pn %>%
rowwise() %>%
# Upper-to-lower case and delete spaces/punctuation
mutate(PSQI2.pn = tolower(PSQI2.pn)) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, " ", "")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "[.]", "")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "[/]", "-")) %>%
# Common Words/phrases
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "lessthan", "")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "minute", "")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "minutes", "")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "mins", "")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "min", "")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "1hour", "60")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "onehour", "60")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "anhour", "60")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "about", "")) %>%
# Specific Cases
mutate(PSQI2.pn = na_if(PSQI2.pn, "imnotsure")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "immediately", "1")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "orless", "")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "lessthan", "")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "immediately", "1")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "between0sto60sdependingifi'vewokenupinthemiddleofthenight", "30")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "typicallyasfastas5[-]10ometimesasslowas45[(]ilistentohypnobabiesandtypicallyfallasleepbeforethe30tapeends", "25")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "twentytothirty", "25")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "1-2hour", "90")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "max", "")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "to", "-")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "ten", "10")) %>%
mutate(PSQI2.pn = str_replace_all(PSQI2.pn, "s", "")) %>%
# Take average of a range
mutate(PSQI2.pn = str_split(string = PSQI2.pn, pattern = "-")) %>%
mutate(PSQI2.pn = mean(as.numeric(PSQI2.pn)))
df.pn <- df.pn %>%
ungroup() %>%
# Upper-to-lower case and delete spaces
mutate(PSQI3.pn = tolower(PSQI3.pn)) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, " ", "")) %>%
# Remove common words/punctuation
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "between", "")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "around", "")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "about", "")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "a.m.", "am")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "-", "am")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "[.]", ":")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "[;]", ":")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "[,]", "")) %>%
# Specific Cases
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "igetup5inthemorning", "5:00")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "630amweekdays8am9amweekends", "6:30")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "onworkdaysigetup6:30amweekendsisleepinalittlemoreandusuallygetup7am8am:", "6:30")) %>%
mutate(PSQI3.pn = na_if(PSQI3.pn, "multipletimestousetherestroomprobably3timesbeforemyalarmgoesoff")) %>%
mutate(PSQI3.pn = na_if(PSQI3.pn, "5pm")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "530", "5:30")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "545", "5:45")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "615", "6:15")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "630", "6:30")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "sevenfifteenam", "7:15")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "eightthirtyam", "8:30")) %>%
mutate(PSQI3.pn = na_if(PSQI3.pn, "aftersnoozingmyalamnce")) %>%
# Convert to military
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "pm", ":00")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "am", ":00")) %>%
mutate(PSQI3.pn = str_replace_all(PSQI3.pn, "a", ":00")) %>%
# Increase/Reduce to 4 digits
mutate(PSQI3.pn = ifelse(PSQI3.pn == "4", "4:00", PSQI3.pn)) %>%
mutate(PSQI3.pn = ifelse(PSQI3.pn == "5", "5:00", PSQI3.pn)) %>%
mutate(PSQI3.pn = ifelse(PSQI3.pn == "6", "6:00", PSQI3.pn)) %>%
mutate(PSQI3.pn = ifelse(PSQI3.pn == "7", "7:00", PSQI3.pn)) %>%
mutate(PSQI3.pn = ifelse(PSQI3.pn == "8", "8:00", PSQI3.pn)) %>%
mutate(PSQI3.pn = str_sub(PSQI3.pn, start = 1, end = 4)) %>%
# Add missing digits
mutate(PSQI3.pn = str_c("0", PSQI3.pn, ":00")) %>%
# Fix parents who wake up at 11 AM and 1 PM
mutate(PSQI3.pn = ifelse(PSQI3.pn=="011:0:00", "11:00:00", PSQI3.pn)) %>%
mutate(PSQI3.pn = ifelse(PSQI3.pn=="01:00:00", "13:00:00", PSQI3.pn)) %>%
# Convert to time format
mutate(PSQI3.pn = ifelse(CoupleID == 33 & Parent == "mom", NA, PSQI3.pn)) %>%
mutate(PSQI3.pn = times(PSQI3.pn))
df.pn <- df.pn %>%
rowwise() %>%
# Upper-to-lower case and delete spaces/punctuation
mutate(PSQI4.pn = tolower(PSQI4.pn)) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, " ", "")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "[,]", "")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "[']", "")) %>%
# Common Words/phrases
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "hours", "")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "hrs", "")) %>%
# Specific Cases
mutate(PSQI4.pn = na_if(PSQI4.pn, "idontknowbecauseiamupacoupletimestogotothebathroomandiamconstantlytossingandturningtofindacomfortableposition")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "nottosuremaybearound6", "6")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "6.5[(]weekdays[)]moreonweekendsmaybe8.5weekends", "7.5")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "aday", "")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "anight", "")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "night", "")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "to", "-")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "[/]", "")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "per", "")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "andahalf", ".5")) %>%
mutate(PSQI4.pn = str_replace_all(PSQI4.pn, "eight", "8")) %>%
# Take average of a range
mutate(PSQI4.pn = str_split(string = PSQI4.pn, pattern = "-")) %>%
mutate(PSQI4.pn = mean(as.numeric(PSQI4.pn))) %>%
# Remove excessive outliers
mutate(PSQI4.pn = na_if(PSQI4.pn, 128)) %>%
mutate(PSQI4.pn = na_if(PSQI4.pn, 180))
df.pn <- df.pn %>%
mutate_at(vars(c(PSQI5a.pn:PSQI9.pn)),
funs(recode(.,
'1' = '0',
'2' = '1',
'3' = '2',
'4' = '3'))) %>%
mutate_at(vars(c(PSQI5a.pn:PSQI9.pn)), as.numeric)
df.pn <- df.pn %>%
mutate(PSQI_c1.pn = PSQI9.pn)
df.pn <- df.pn %>%
rowwise() %>%
# Recode Question 2
mutate(PSQI_c2.pn = ifelse(PSQI2.pn <= 15, 0,
ifelse(PSQI2.pn >= 16 & PSQI2.pn <= 30, 1,
ifelse(PSQI2.pn >= 31 & PSQI2.pn <= 60, 2,
ifelse(PSQI2.pn > 60, 3, NA))))) %>%
# Sum Questions 2 and 5a
mutate(PSQI_c2.pn = PSQI_c2.pn+PSQI5a.pn) %>%
# Recode Component 2
mutate(PSQI_c2.pn = ifelse(PSQI_c2.pn == 0, 0,
ifelse(PSQI_c2.pn == 1 | PSQI_c2.pn == 2, 1,
ifelse(PSQI_c2.pn == 3 | PSQI_c2.pn == 4, 2,
ifelse(PSQI_c2.pn==5 | PSQI_c2.pn == 6, 3, NA)))))
df.pn <- df.pn %>%
rowwise() %>%
mutate(PSQI_c3.pn = ifelse(PSQI4.pn > 7, 0,
ifelse(PSQI4.pn <= 7 & PSQI4.pn > 6, 1,
ifelse(PSQI4.pn <= 6 & PSQI4.pn > 5, 2,
ifelse(PSQI4.pn <= 5, 3, NA)))))
df.pn <- df.pn %>%
rowwise() %>%
# Add fake date so that R knows that parents are waking up the day after they go to bed
# I just chose a random date (happened to be the date I was working)
mutate(PSQIam.pn = as.POSIXct(chron(dates. = "06/27/2022", times. = PSQI3.pn))+25200) %>%
mutate(PSQIpm.pn = as.POSIXct(chron(dates. = "06/26/2022", times. = PSQI1.pn))+25200) %>%
# Tell R that parents who go to bed after midnight are actually sleeping the following day
mutate(PSQIpm.pn = as.POSIXct(ifelse(PSQIpm.pn <= "2022-06-26 03:00:00",
PSQIpm.pn+86400,
PSQIpm.pn
), origin = "1970-01-01")) %>%
# Find hours in bed
mutate(PSQIhib.pn = as.numeric(difftime(PSQIam.pn, PSQIpm.pn, units = "hours"))) %>%
# Calculate Component 4
mutate(PSQI_c4.pn = (PSQI4.pn/PSQIhib.pn)*100) %>%
# Recode Component 4
mutate(PSQI_c4.pn = ifelse(PSQI_c4.pn >= 85, 0,
ifelse(PSQI_c4.pn < 85 & PSQI_c4.pn >= 75, 1,
ifelse(PSQI_c4.pn < 75 & PSQI_c4.pn >= 65, 2,
ifelse(PSQI_c4.pn < 64, 3, NA))))) %>%
# Remove helper variables
select(-c(PSQIam.pn, PSQIpm.pn, PSQIhib.pn))
df.pn <- df.pn %>%
rowwise() %>%
# Calculate mean
mutate(PSQI5mean.pn = mean(c_across(PSQI5b.pn:PSQI5j.pn), na.rm = T)) %>%
mutate(PSQI5mean.pn = ifelse(PSQI5mean.pn == "NaN", NA, PSQI5mean.pn)) %>%
# Replace missing values with mean
mutate(PSQI5h.pn2 = tidyr::replace_na(PSQI5h.pn, PSQI5mean.pn)) %>%
mutate(PSQI5j.pn2 = tidyr::replace_na(PSQI5j.pn, PSQI5mean.pn)) %>%
# Calculate Component 5
mutate(PSQI_c5.pn = sum(c(c_across(PSQI5b.pn:PSQI5g.pn), PSQI5h.pn2, PSQI5i.pn, PSQI5j.pn2))) %>%
# Recode Component 5
mutate(PSQI_c5.pn = ifelse(PSQI_c5.pn == 0, 0,
ifelse(PSQI_c5.pn >= 1 & PSQI_c5.pn <= 9, 1,
ifelse(PSQI_c5.pn >= 10 & PSQI_c5.pn <= 18, 2,
ifelse(PSQI_c5.pn >= 19, 3, NA))))) %>%
# Remove helper variables
select(-c(PSQI5mean.pn, PSQI5h.pn2, PSQI5j.pn2))
df.pn <- df.pn %>%
mutate(PSQI_c6.pn = PSQI6.pn)
df.pn <- df.pn %>%
rowwise() %>%
# Moms
mutate(PSQI_c7.pn = sum(c(PSQI7.pn, PSQI8.pn))) %>%
mutate(PSQI_c7.pn = ifelse(PSQI_c7.pn == 0, 0,
ifelse(PSQI_c7.pn == 1 | PSQI_c7.pn == 2, 1,
ifelse(PSQI_c7.pn == 3 | PSQI_c7.pn == 4, 2,
ifelse(PSQI_c7.pn == 5 | PSQI_c7.pn == 6, 3,
NA)))))
df.pn <- df.pn %>%
relocate(c(PSQI_c1.pn, PSQI_c2.pn, PSQI_c3.pn, PSQI_c4.pn, PSQI_c5.pn, PSQI_c6.pn, PSQI_c7.pn),
.after = PSQI9.pn)
df.pn <- df.pn %>%
rowwise() %>%
# Calculate total score
mutate(PSQI_tot.pn = sum(c_across(PSQI_c1.pn:PSQI_c7.pn))) %>%
# Relocate variables
relocate(PSQI_tot.pn, .after = PSQI_c7.pn)
| CoupleID | PSQI_c1.pn | PSQI_c2.pn | PSQI_c3.pn | PSQI_c4.pn | PSQI_c5.pn | PSQI_c6.pn | PSQI_c7.pn | PSQI_tot.pn |
|---|---|---|---|---|---|---|---|---|
| 68 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | 9 |
| 32 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 2 |
| 7 | NA | NA | NA | NA | NA | NA | NA | NA |
| 96 | 2 | 2 | 1 | 1 | 2 | 0 | 1 | 9 |
| 42 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 2 |
| 26 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 4 |
| CoupleID | PSQI_c1.pn | PSQI_c2.pn | PSQI_c3.pn | PSQI_c4.pn | PSQI_c5.pn | PSQI_c6.pn | PSQI_c7.pn | PSQI_tot.pn |
|---|---|---|---|---|---|---|---|---|
| 67 | 1 | 1 | NA | NA | 2 | 0 | 1 | NA |
| 37 | 1 | 1 | 2 | 1 | 2 | 0 | 1 | 8 |
| 61 | 1 | 0 | 1 | 0 | 2 | 0 | 2 | 6 |
| 75 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 6 |
| 68 | 1 | 1 | 1 | 3 | 1 | 0 | 1 | 8 |
| 49 | 1 | 2 | 1 | 1 | 2 | 1 | 1 | 9 |
PSS columns# Get Column Numbers
cols <- which(colnames(df.pn)=="PSS_1.pn"):which(colnames(df.pn)=="PSS_14.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = gsub(pattern = "_", replacement = "", x = colnames(df.pn[,cols])))
df.pn <- df.pn %>%
# Re-code items
mutate_at(vars(c(PSS1.pn:PSS14.pn)),
funs(recode(.,
'1' = '0',
'2' = '1',
'3' = '2',
'4' = '3',
'5' = '4')))
# Reverse Code Key
reverse_key <- setNames(c(0:4), 4:0)
# Reverse Score Q's 4, 5, 6, 7, 9, 10, 13
df.pn <- df.pn %>%
mutate_at(vars(c(PSS4.pn, PSS5.pn, PSS6.pn,
PSS7.pn, PSS9.pn, PSS10.pn,
PSS13.pn)),
funs(recode(., !!!reverse_key)))
# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("PSS4.pn", "PSS5.pn", "PSS6.pn",
"PSS7.pn", "PSS9.pn", "PSS10.pn",
"PSS13.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("PSS4.pn", "PSS5.pn", "PSS6.pn",
"PSS7.pn", "PSS9.pn", "PSS10.pn",
"PSS13.pn")))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that scores are numeric
mutate_at(vars(c(PSS1.pn:PSS14.pn)), as.numeric) %>%
# Calculate total scores/subscales
mutate(PSS_tot.pn = sum(c_across(PSS1.pn:PSS14.pn), na.rm = T)) %>%
# Clean up NAs
mutate(across(PSS_tot.pn, ~na_if(., 0))) %>%
# Move the total score/subscales so they come immediately after the measures
relocate(PSS_tot.pn, .after = PSS14.pn)
| CoupleID | PSS1.pn | PSS2.pn | PSS3.pn | PSS4_r.pn | PSS5_r.pn | PSS6_r.pn | PSS7_r.pn | PSS8.pn | PSS9_r.pn | PSS10_r.pn | PSS11.pn | PSS12.pn | PSS13_r.pn | PSS14.pn | PSS_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 52 | 1 | 0 | 1 | 3 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 1 | 2 | 18 |
| 23 | 4 | 3 | 3 | 1 | 1 | 1 | 1 | 4 | 2 | 2 | 3 | 4 | 0 | 4 | 33 |
| 53 | 1 | 0 | 3 | 1 | 1 | 0 | 0 | 2 | 1 | 1 | 1 | 4 | 2 | 1 | 18 |
| 37 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| 15 | 1 | 2 | 3 | 1 | 2 | 1 | 1 | 2 | 2 | 2 | 1 | 2 | 2 | 1 | 23 |
| 93 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 2 | 1 | 0 | 12 |
| CoupleID | PSS1.pn | PSS2.pn | PSS3.pn | PSS4_r.pn | PSS5_r.pn | PSS6_r.pn | PSS7_r.pn | PSS8.pn | PSS9_r.pn | PSS10_r.pn | PSS11.pn | PSS12.pn | PSS13_r.pn | PSS14.pn | PSS_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 67 | 4 | 4 | 4 | 1 | 0 | 2 | 3 | 2 | 2 | 2 | 3 | 0 | 2 | 0 | 29 |
| 13 | 1 | 1 | 2 | 1 | 1 | 0 | 0 | 2 | 1 | 1 | 1 | 3 | 1 | 0 | 15 |
| 76 | 1 | 3 | 2 | 1 | 1 | 0 | 1 | 1 | 0 | 3 | 1 | 3 | 2 | 1 | 20 |
| 74 | 1 | 1 | 2 | 2 | 2 | 1 | 1 | 2 | 1 | 2 | 1 | 3 | 2 | 1 | 22 |
| 93 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 0 | 1 | 18 |
| 78 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 3 | 3 | 3 | 3 | 26 |
RF Columns# Get Column Numbers
cols <- which(colnames(df.pn)=="RF_1.pn"):which(colnames(df.pn)=="RF_11.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
gsub(pattern = "_", replacement = "", x = colnames(df.pn[,cols])))
RF Items 1, 3, 6# Reverse Code Key
reverse_key <- setNames(c(1:5), 5:1)
# Reverse Score Q's 1, 3, 6
df.pn <- df.pn %>%
mutate_at(vars(c(RF1.pn, RF3.pn, RF6.pn)),
funs(recode(., !!!reverse_key)))
# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("RF1.pn", "RF3.pn", "RF6.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("RF1.pn", "RF3.pn", "RF6.pn")))
df.pn <- df.pn %>%
mutate_at(vars(c(RF1_r.pn:RF11.pn)), as.numeric) %>%
rowwise() %>%
mutate(RF_tot.pn = sum(c_across(RF1_r.pn:RF11.pn))) %>%
relocate(RF_tot.pn, .after = RF11.pn)
| CoupleID | RF1_r.pn | RF2.pn | RF3_r.pn | RF4.pn | RF5.pn | RF6_r.pn | RF7.pn | RF8.pn | RF9.pn | RF10.pn | RF11.pn | RF_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 38 | 2 | 1 | 2 | 1 | 1 | 2 | 1 | 3 | 3 | 3 | 1 | 20 |
| 20 | 5 | 1 | 3 | 2 | 1 | 5 | 3 | 2 | 1 | 5 | 5 | 33 |
| 98 | 1 | 2 | 1 | 1 | 2 | 1 | 1 | 2 | 3 | 3 | 1 | 18 |
| 47 | 1 | 2 | 1 | 1 | 1 | 2 | 1 | 3 | 3 | 3 | 1 | 19 |
| 25 | 1 | 2 | 1 | 4 | 1 | 1 | 1 | 4 | 4 | 1 | 1 | 21 |
| 2 | 3 | 3 | 4 | 1 | 4 | 5 | 2 | 5 | 4 | 5 | 5 | 41 |
| CoupleID | RF1_r.pn | RF2.pn | RF3_r.pn | RF4.pn | RF5.pn | RF6_r.pn | RF7.pn | RF8.pn | RF9.pn | RF10.pn | RF11.pn | RF_tot.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 65 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 3 | 1 | 1 | 15 |
| 12 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 1 | 1 | 14 |
| 81 | 3 | 4 | 2 | 4 | 1 | 3 | 1 | 4 | 3 | 1 | 2 | 28 |
| 84 | 2 | 4 | 3 | 1 | 1 | 1 | 2 | 4 | 1 | 2 | 2 | 23 |
| 31 | 2 | 2 | 3 | 2 | 1 | 1 | 1 | 3 | 3 | 1 | 4 | 23 |
| 34 | 2 | 2 | 2 | 3 | 4 | 4 | 3 | 5 | 4 | 4 | 2 | 35 |
SCL columns# Get Column Numbers
cols <- which(colnames(df.pn)=="SCL90_1.pn"):which(colnames(df.pn)=="SCL90_87.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = paste("SCL", c(1:14, # rename 1-14; remove 15
16:58, # rename 16-58; remove 59
60:62, # rename 60-62; remove 63
64:90), # rename 64-90
".pn", sep = ""))
df.pn <- df.pn %>%
# Re-code items
mutate_at(vars(c(SCL1.pn:SCL90.pn)),
funs(recode(.,
'1' = '0',
'2' = '1',
'3' = '2',
'4' = '3',
'5' = '4')))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that scores are numeric
mutate_at(vars(c(SCL1.pn:SCL90.pn)), as.numeric) %>%
# Calculate subscales
mutate(SCL_som.pn = mean(c(SCL1.pn, SCL4.pn, SCL12.pn,
SCL27.pn, SCL40.pn, SCL42.pn,
SCL48.pn, SCL49.pn, SCL50.pn,
SCL53.pn, SCL56.pn, SCL58.pn),
na.rm = T) + .005, #12
SCL_oc.pn = mean(c(SCL3.pn, SCL9.pn, SCL10.pn,
SCL28.pn, SCL38.pn, SCL45.pn,
SCL46.pn, SCL51.pn, SCL55.pn, SCL65.pn),
na.rm = T) + .005, #10
SCL_is.pn = mean(c(SCL6.pn, SCL21.pn, SCL34.pn,
SCL36.pn, SCL37.pn, SCL41.pn,
SCL61.pn, SCL69.pn, SCL73.pn),
na.rm = T) + .005, #9
SCL_dep.pn = mean(c(SCL5.pn, SCL14.pn, SCL20.pn,
SCL22.pn, SCL26.pn, SCL29.pn,
SCL30.pn, SCL31.pn, SCL32.pn,
SCL54.pn, SCL71.pn, SCL79.pn),
na.rm = T) + .005, #13-1
SCL_anx.pn = mean(c(SCL2.pn, SCL17.pn, SCL23.pn,
SCL33.pn, SCL39.pn, SCL57.pn,
SCL72.pn, SCL78.pn, SCL80.pn, SCL86.pn),
na.rm = T) + .005, #the screenshot doesn't include 2, but 2 is included on the anxiety scale in the manual
SCL_hos.pn = mean(c(SCL11.pn, SCL24.pn, SCL67.pn,
SCL74.pn, SCL81.pn),
na.rm = T) + .005, #6-1
SCL_phob.pn = mean(c(SCL13.pn, SCL25.pn, SCL47.pn,
SCL50.pn, SCL70.pn, SCL75.pn, SCL82.pn),
na.rm = T) + .005, #7
SCL_par.pn = mean(c(SCL8.pn, SCL18.pn, SCL43.pn,
SCL68.pn, SCL76.pn, SCL83.pn),
na.rm = T) + .005, #6
SCL_psy.pn = mean(c(SCL7.pn, SCL16.pn, SCL35.pn,
SCL62.pn, SCL77.pn, SCL84.pn,
SCL85.pn, SCL87.pn, SCL88.pn, SCL90.pn),
na.rm = T) + .005, #10
SCL_add.pn = mean(c(SCL19.pn, SCL44.pn,SCL60.pn,
SCL64.pn, SCL66.pn, SCL89.pn),
na.rm = T) + .005 #7-1
) %>%
# Round to two decimals
mutate(across(c(SCL_som.pn:SCL_add.pn), round, 2)) %>%
# Replace NaN with NAs
mutate(across(c(SCL_som.pn:SCL_add.pn), ~na_if(., "NaN")))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Count number of NAs in a row
row_count(SCL1.pn:SCL90.pn, count = NA, var = "SCL_count_NA", append = T) %>%
# Calculate total number of responses in a row
mutate(SCL_totr = 87 - SCL_count_NA) %>%
# Calculate Global Severity Index by dividing the sum of all responses by the total number of responses and adding .005
mutate(SCL_gsi.pn = sum(c_across(SCL1.pn:SCL90.pn), na.rm = T)/SCL_totr + .005) %>%
# Round to two decimals
mutate(SCL_gsi.pn = round(SCL_gsi.pn, 2))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Count number of zero-scored items in a row
row_count(SCL1.pn:SCL90.pn, count = 0, var = "SCL_count_0", append = T) %>%
# Calculate the Positive Symptom Total by subtracting the number of zero-value responses from the total number of responses
mutate(SCL_pst.pn = SCL_totr - SCL_count_0)
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Calculate the Positive Symptoms Distress Index by dividing the sum of all responses by the PST and adding .005
mutate(SCL_psdi.pn = sum(c_across(SCL1.pn:SCL90.pn), na.rm = T)/SCL_pst.pn + .005) %>%
# Round to two decimals
mutate(SCL_psdi.pn = round(SCL_psdi.pn, 2))
df.pn <- df.pn %>%
# Remove helper variables
select(-c(SCL_count_NA, SCL_count_0, SCL_totr)) %>%
# Replace NaN with NAs
mutate(across(c(SCL_som.pn:SCL_psdi.pn), ~na_if(., "NaN"))) %>%
# Move the subscales so they come immediately after the measures
relocate(SCL_som.pn:SCL_psdi.pn, .after = SCL90.pn)
df.pn %>%
filter(Parent == "mom") %>%
select(c(CoupleID, SCL_som.pn:SCL_psdi.pn)) %>% ungroup() %>%
slice_sample(n = 6) %>%
# Table Formatting
kbl(centering = T) %>%
kable_styling(bootstrap_options = c("hover", "condensed"), full_width = F) %>%
row_spec(0:6, align = "center") %>%
scroll_box(width = "100%")
| CoupleID | SCL_som.pn | SCL_oc.pn | SCL_is.pn | SCL_dep.pn | SCL_anx.pn | SCL_hos.pn | SCL_phob.pn | SCL_par.pn | SCL_psy.pn | SCL_add.pn | SCL_gsi.pn | SCL_pst.pn | SCL_psdi.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 13 | 0.42 | 0.8 | 0.34 | 0.67 | 0.11 | 0.21 | 0.15 | 0.00 | 0.0 | 0.34 | 0.34 | 29 | 1.00 |
| 7 | 0.92 | 0.6 | 0.34 | 0.84 | 0.60 | 0.00 | 0.00 | 0.67 | 0.0 | 1.34 | 0.56 | 32 | 1.50 |
| 64 | 0.26 | 1.0 | 0.34 | 0.84 | 0.11 | 0.60 | 0.00 | 1.17 | 0.8 | 1.67 | 0.64 | 30 | 1.84 |
| 19 | 1.34 | 1.9 | 1.12 | 1.42 | 0.30 | 0.60 | 0.15 | 1.00 | 0.0 | 1.00 | 0.96 | 48 | 1.71 |
| 9 | 0.76 | 0.6 | 0.67 | 0.42 | 0.11 | 0.80 | 0.00 | 0.17 | 0.0 | 1.00 | 0.45 | 25 | 1.52 |
| 76 | 0.34 | 1.1 | 0.00 | 0.17 | 0.00 | 0.21 | 0.00 | 0.00 | 0.0 | 0.00 | 0.21 | 11 | 1.64 |
df.pn %>%
filter(Parent == "dad") %>%
select(c(CoupleID, SCL_som.pn:SCL_psdi.pn)) %>% ungroup() %>%
slice_sample(n = 6) %>%
# Table Formatting
kbl(centering = T) %>%
kable_styling(bootstrap_options = c("hover", "condensed"), full_width = F) %>%
row_spec(0:6, align = "center") %>%
scroll_box(width = "100%")
| CoupleID | SCL_som.pn | SCL_oc.pn | SCL_is.pn | SCL_dep.pn | SCL_anx.pn | SCL_hos.pn | SCL_phob.pn | SCL_par.pn | SCL_psy.pn | SCL_add.pn | SCL_gsi.pn | SCL_pst.pn | SCL_psdi.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 18 | 0.50 | 1.4 | 0.45 | 1.17 | 0.21 | 1.00 | 0.00 | 1.17 | 0.00 | 1.67 | 0.73 | 41 | 1.52 |
| 60 | 0.26 | 0.8 | 0.12 | 0.09 | 0.11 | 0.00 | 0.00 | 0.34 | 0.00 | 0.17 | 0.20 | 12 | 1.42 |
| 92 | 0.00 | 0.7 | 0.34 | 0.67 | 0.00 | 0.21 | 0.00 | 0.00 | 0.11 | 0.17 | 0.25 | 20 | 1.05 |
| 72 | 0.42 | 0.0 | 0.34 | 0.42 | 0.50 | 0.00 | 0.29 | 0.34 | 0.11 | 0.34 | 0.29 | 17 | 1.48 |
| 12 | 0.42 | 0.7 | 0.00 | 0.26 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.50 | 0.21 | 14 | 1.29 |
| 74 | 0.42 | 0.6 | 0.23 | 0.42 | 0.00 | 0.21 | 0.00 | 0.00 | 0.11 | 0.34 | 0.26 | 18 | 1.23 |
STAI columns# Get Column Numbers
cols <- which(colnames(df.pn)=="STAI_State_1.pn"):which(colnames(df.pn)=="STAI_Trait_20.pn")
# Set new names (State)
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = gsub(pattern = "State_", replacement = "s", x = colnames(df.pn[,cols])))
# Set new names (Trait)
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = gsub(pattern = "Trait_", replacement = "t", x = colnames(df.pn[,cols])))
# Reverse Code Key
reverse_key <- setNames(c(1:4), 4:1)
# Reverse State Score Q's 1, 2, 5, 8, 10, 11, 15, 16, 19, 20
df.pn <- df.pn %>%
mutate_at(vars(c(STAI_s1.pn, STAI_s2.pn, STAI_s5.pn, STAI_s8.pn, STAI_s10.pn,
STAI_s11.pn, STAI_s15.pn, STAI_s16.pn, STAI_s19.pn, STAI_s20.pn)),
funs(recode(., !!!reverse_key)))
# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("STAI_s1.pn", "STAI_s2.pn", "STAI_s5.pn", "STAI_s8.pn", "STAI_s10.pn",
"STAI_s11.pn", "STAI_s15.pn", "STAI_s16.pn", "STAI_s19.pn", "STAI_s20.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("STAI_s1.pn", "STAI_s2.pn", "STAI_s5.pn", "STAI_s8.pn", "STAI_s10.pn",
"STAI_s11.pn", "STAI_s15.pn", "STAI_s16.pn", "STAI_s19.pn", "STAI_s20.pn")))
# Reverse State Score Q's 1, 3, 6, 7, 10, 13, 14, 16, 19
df.pn <- df.pn %>%
mutate_at(vars(c(STAI_t1.pn, STAI_t3.pn, STAI_t6.pn, STAI_t7.pn, STAI_t10.pn,
STAI_t13.pn, STAI_t14.pn, STAI_t16.pn, STAI_t19.pn)),
funs(recode(., !!!reverse_key)))
# Mark reversed scores with `_r`
setnames(x = df.pn,
old = c("STAI_t1.pn", "STAI_t3.pn", "STAI_t6.pn", "STAI_t7.pn", "STAI_t10.pn",
"STAI_t13.pn", "STAI_t14.pn", "STAI_t16.pn", "STAI_t19.pn"),
new = gsub(pattern = ".pn",
replacement = "_r.pn",
x = c("STAI_t1.pn", "STAI_t3.pn", "STAI_t6.pn", "STAI_t7.pn", "STAI_t10.pn",
"STAI_t13.pn", "STAI_t14.pn", "STAI_t16.pn", "STAI_t19.pn")))
df.pn <- df.pn %>%
# Tell R that we want to take the mean across a row
rowwise() %>%
# Tell R that STAI scores are numeric
mutate_at(vars(c(STAI_s1_r.pn:STAI_t20.pn)), as.numeric) %>%
# Calculate total scores
mutate(STAI_state.pn = sum(c_across(STAI_s1_r.pn:STAI_s20_r.pn)),
STAI_trait.pn = sum(c_across(STAI_t1_r.pn:STAI_t20.pn))) %>%
# Move the summmary scores so they come immediately after the measures
relocate(STAI_state.pn, .after = STAI_s20_r.pn) %>%
relocate(STAI_trait.pn, .after = STAI_t20.pn)
| CoupleID | STAI_state.pn | STAI_trait.pn |
|---|---|---|
| 41 | 20 | 26 |
| 11 | 29 | 31 |
| 75 | 25 | 27 |
| 18 | 21 | 27 |
| 5 | 34 | 46 |
| 38 | 20 | 21 |
| CoupleID | STAI_state.pn | STAI_trait.pn |
|---|---|---|
| 47 | 28 | 30 |
| 13 | 22 | 24 |
| 22 | 33 | 39 |
| 31 | 21 | 31 |
| 82 | 33 | 38 |
| 18 | 36 | 36 |
WIAF columns# Get Column Numbers
cols <- which(colnames(df.pn)=="WIAF_1.pn"):which(colnames(df.pn)=="WIAF_15.pn")
# Set new names
setnames(df.pn,
old = colnames(df.pn[,cols]),
new = gsub(pattern = "_", replacement = "", x = colnames(df.pn[,cols])))
| CoupleID | WIAF1.pn | WIAF2.pn | WIAF3.pn | WIAF4.pn | WIAF5.pn | WIAF6.pn | WIAF7.pn | WIAF8.pn | WIAF9.pn | WIAF10.pn | WIAF11.pn | WIAF12.pn | WIAF13.pn | WIAF14.pn | WIAF15.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 49 | 3 | 5 | 3 | 3 | 3 | 3 | 3 | 5 | 5 | 4 | 4 | 5 | 5 | 3 | 5 |
| 52 | 3 | 5 | 2 | 1 | 5 | 3 | 5 | 4 | 5 | 4 | 5 | 3 | 5 | 2 | 5 |
| 26 | 5 | 5 | 2 | 1 | 4 | 4 | 4 | 4 | 4 | 5 | 2 | 4 | 5 | 2 | 5 |
| 40 | 3 | 4 | 2 | 3 | 2 | 3 | 2 | 4 | 4 | 4 | 4 | 5 | 5 | 3 | 5 |
| 59 | 2 | 5 | 3 | 4 | 4 | 4 | 5 | 5 | 5 | 5 | 4 | 5 | 5 | 3 | 5 |
| 88 | 4 | 5 | 3 | 2 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 5 | 2 | 5 |
| CoupleID | WIAF1.pn | WIAF2.pn | WIAF3.pn | WIAF4.pn | WIAF5.pn | WIAF6.pn | WIAF7.pn | WIAF8.pn | WIAF9.pn | WIAF10.pn | WIAF11.pn | WIAF12.pn | WIAF13.pn | WIAF14.pn | WIAF15.pn |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 99 | 4 | 5 | 2 | 1 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 2 | 5 |
| 20 | 4 | 5 | 2 | 1 | 5 | 4 | 5 | 4 | 5 | 4 | 4 | 4 | 5 | 1 | 5 |
| 47 | 4 | 5 | 1 | 1 | 4 | 3 | 4 | 4 | 4 | 4 | 3 | 4 | 5 | 4 | 4 |
| 65 | 2 | 5 | 4 | 1 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 4 | 5 |
| 51 | 5 | 5 | 2 | 2 | 5 | 3 | 5 | 4 | 5 | 5 | 4 | 3 | 5 | 1 | 5 |
| 9 | 3 | 5 | 3 | 2 | 2 | 4 | 5 | 4 | 4 | 5 | 4 | 4 | 5 | 2 | 5 |
df.pn <- df.pn %>%
# Re-order Columns
relocate(c(
# Demographics
Parent:DrugFrequency.pn,
Born_US.pn:Insurance_Status.pn,
Illness1.pn:Illness7_current.pn,
# Inventories
AAS1.pn:AAS_anx.pn,
BDI1.pn:BDI_tot.pn,
BFI1.pn:BFI_open.pn,
COPE1.pn:COPE_blame.pn,
DAS1.pn:DAS_tot.pn,
ECR1.pn:ECR_avoid.pn,
IRI1.pn:IRI_pd.pn,
ISS1_r.pn:ISS_tot.pn,
LAPR1.pn:LAPR_pmi.pn,
LEC1.pn:LEC_hapwit.pn,
LES1_hap.pn:LES_tot.pn,
MAAS1_r.pn:PAAS_pre.pn,
MAT1.pn:MAT_tot.pn,
MOS1.pn:MOS_tot.pn,
PAS1_r.pn:PAS_mean.pn,
PregSymp1_presence.pn:PregSymp_tot_distress.pn,
PSAM1.pn:PSAM_mean.pn,
PSQI1.pn:PSQI_tot.pn,
PSS1.pn:PSS_tot.pn,
RF1_r.pn:RF_tot.pn,
SCL1.pn:SCL_psdi.pn,
STAI_s1_r.pn:STAI_trait.pn,
WIAF1.pn:WIAF15.pn),
.after = CoupleID) %>%
# Remove Extraneous Columns
select(-`3`)
df.pn_sum <- df.pn %>%
select(CoupleID, Parent,
DaysPregnant.pn:Education.pn,
BMI.pn:Insurance_Status.pn,
AAS_close.pn:AAS_anx.pn,
BDI_tot.pn,
BFI_ext.pn:BFI_open.pn,
COPE_dist.pn:COPE_blame.pn,
DAS_con.pn:DAS_tot.pn,
ECR_anx.pn:ECR_avoid.pn,
IRI_fs.pn:IRI_pd.pn,
ISS_tot.pn,
LAPR_pur.pn:LAPR_pmi.pn,
LEC_hap.pn:LEC_hapwit.pn,
LES_pos.pn:LES_tot.pn,
MAAS_qual.pn:MAAS_tot.pn, PAAS_qual.pn:PAAS_tot.pn,
MAT_tot.pn,
MOS_emo.pn:MOS_tot.pn,
PAS_mean.pn,
PregSymp_total.pn:PregSymp_tot_distress.pn,
PSAM_mean.pn,
PSQI_tot.pn,
PSS_tot.pn,
RF_tot.pn,
SCL_som.pn:SCL_psdi.pn,
STAI_state.pn, STAI_trait.pn
)
write.csv(df.pn, here("data/qualtrics/Final", "0_pn.total.csv"))
write.csv(df.pn_sum, here("data/qualtrics/Final", "0_pn.summary.csv"))
haven::write_sav(df.pn, here("data/qualtrics/Final", "0_pn.total.sav"))